diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.html
index 82b8290..0833852 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.html
@@ -85,7 +85,7 @@
 <p class="firstline">Returns the users Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#create">create(accountId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(accountId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a new client buyer.</p>
 <p class="toc_element">
   <code><a href="#get">get(accountId, clientAccountId, x__xgafv=None)</a></code></p>
@@ -97,11 +97,11 @@
   <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(accountId=None, clientAccountId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(accountId, clientAccountId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates an existing client buyer.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(accountId=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(accountId, body, x__xgafv=None)</code>
   <pre>Creates a new client buyer.
 
 Args:
@@ -342,7 +342,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(accountId=None, clientAccountId, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(accountId, clientAccountId, body, x__xgafv=None)</code>
   <pre>Updates an existing client buyer.
 
 Args:
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
index 1dbaef9..e594586 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.invitations.html
@@ -75,20 +75,20 @@
 <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.clients.html">clients</a> . <a href="adexchangebuyer2_v2beta1.accounts.clients.invitations.html">invitations</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(accountId, clientAccountId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(accountId, clientAccountId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates and sends out an email invitation to access</p>
 <p class="toc_element">
-  <code><a href="#get">get(accountId, clientAccountId=None, invitationId, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(accountId, clientAccountId, invitationId, x__xgafv=None)</a></code></p>
 <p class="firstline">Retrieves an existing client user invitation.</p>
 <p class="toc_element">
-  <code><a href="#list">list(accountId, clientAccountId=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(accountId, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists all the client users invitations for a client</p>
 <p class="toc_element">
   <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(accountId, clientAccountId=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(accountId, clientAccountId, body, x__xgafv=None)</code>
   <pre>Creates and sends out an email invitation to access
 an Ad Exchange client buyer account.
 
@@ -105,11 +105,11 @@
     "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.
+    "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.
     "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.
@@ -126,16 +126,16 @@
       "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.
+      "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.
       "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>
 
 <div class="method">
-    <code class="details" id="get">get(accountId, clientAccountId=None, invitationId, x__xgafv=None)</code>
+    <code class="details" id="get">get(accountId, clientAccountId, invitationId, x__xgafv=None)</code>
   <pre>Retrieves an existing client user invitation.
 
 Args:
@@ -157,16 +157,16 @@
       "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.
+      "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.
       "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>
 
 <div class="method">
-    <code class="details" id="list">list(accountId, clientAccountId=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(accountId, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists all the client users invitations for a client
 with a given account ID.
 
@@ -209,11 +209,11 @@
           "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.
+          "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.
           "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.clients.users.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.users.html
index bc0ce40..b8a41dc 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.users.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.clients.users.html
@@ -75,20 +75,20 @@
 <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.clients.html">clients</a> . <a href="adexchangebuyer2_v2beta1.accounts.clients.users.html">users</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#get">get(accountId, clientAccountId=None, userId, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(accountId, clientAccountId, userId, x__xgafv=None)</a></code></p>
 <p class="firstline">Retrieves an existing client user.</p>
 <p class="toc_element">
-  <code><a href="#list">list(accountId=None, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(accountId, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists all the known client users for a specified</p>
 <p class="toc_element">
   <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(accountId, clientAccountId=None, userId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(accountId, clientAccountId, userId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates an existing client user.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(accountId, clientAccountId=None, userId, x__xgafv=None)</code>
+    <code class="details" id="get">get(accountId, clientAccountId, userId, x__xgafv=None)</code>
   <pre>Retrieves an existing client user.
 
 Args:
@@ -130,7 +130,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(accountId=None, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(accountId, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists all the known client users for a specified
 sponsor buyer account ID.
 
@@ -208,7 +208,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(accountId, clientAccountId=None, userId, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(accountId, clientAccountId, userId, body, x__xgafv=None)</code>
   <pre>Updates an existing client user.
 Only the user status can be changed on update.
 
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html
index 86edd0f..7c207bf 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.dealAssociations.html
@@ -78,7 +78,7 @@
   <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>
+  <code><a href="#list">list(accountId, creativeId, 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>
@@ -126,7 +126,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(accountId=None, creativeId=None, pageSize=None, pageToken=None, x__xgafv=None, query=None)</code>
+    <code class="details" id="list">list(accountId, creativeId, pageSize=None, pageToken=None, x__xgafv=None, query=None)</code>
   <pre>List all creative-deal associations.
 
 Args:
diff --git a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
index 62d48ff..8acc247 100644
--- a/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
+++ b/docs/dyn/adexchangebuyer2_v2beta1.accounts.creatives.html
@@ -80,29 +80,29 @@
 <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>
+  <code><a href="#create">create(accountId, 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>
+  <code><a href="#list">list(accountId, 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>
+  <code><a href="#stopWatching">stopWatching(accountId, creativeId, 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>
+  <code><a href="#update">update(accountId, creativeId, 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>
+  <code><a href="#watch">watch(accountId, creativeId, 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>
+    <code class="details" id="create">create(accountId, body, duplicateIdMode=None, x__xgafv=None)</code>
   <pre>Creates a creative.
 
 Args:
@@ -175,6 +175,7 @@
   "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
   "native": { # Native content for a creative. # A native creative.
     "body": "A String", # A long description of the ad.
+    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
     "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.
@@ -184,15 +185,8 @@
       "height": 42, # Image height in pixels.
     },
     "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.
+    "clickTrackingUrl": "A String", # The URL to use for click tracking.
     "priceDisplayText": "A String", # The price of the promoted app including currency info.
-    "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
-    "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.
-    },
     "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.
@@ -200,7 +194,13 @@
       "width": 42, # Image width in pixels.
       "height": 42, # Image height in pixels.
     },
-    "clickTrackingUrl": "A String", # The URL to use for click tracking.
+    "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.
   },
   "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
@@ -208,11 +208,7 @@
       # for possible values.
     42,
   ],
-  "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
-      # See the ad-product-categories.txt file in the technical documentation
-      # for a list of IDs.
-    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.
@@ -223,7 +219,11 @@
       # Can be used to filter the response of the
       # creatives.list
       # method.
-  "agencyId": "A String", # The agency ID for this creative.
+  "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",
@@ -252,8 +252,6 @@
         # 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).
-      "status": "A String", # The status of the creative in this context (for example, it has been
-          # explicitly disapproved or is pending review).
       "contexts": [ # The contexts for the restriction.
         { # The serving context for this restriction.
           "all": "A String", # Matches all contexts.
@@ -288,6 +286,8 @@
           },
         },
       ],
+      "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
@@ -427,6 +427,7 @@
     "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
     "native": { # Native content for a creative. # A native creative.
       "body": "A String", # A long description of the ad.
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "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.
@@ -436,15 +437,8 @@
         "height": 42, # Image height in pixels.
       },
       "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.
+      "clickTrackingUrl": "A String", # The URL to use for click tracking.
       "priceDisplayText": "A String", # The price of the promoted app including currency info.
-      "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
-      "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.
-      },
       "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.
@@ -452,7 +446,13 @@
         "width": 42, # Image width in pixels.
         "height": 42, # Image height in pixels.
       },
-      "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "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.
     },
     "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
@@ -460,11 +460,7 @@
         # for possible values.
       42,
     ],
-    "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
-        # See the ad-product-categories.txt file in the technical documentation
-        # for a list of IDs.
-      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.
@@ -475,7 +471,11 @@
         # Can be used to filter the response of the
         # creatives.list
         # method.
-    "agencyId": "A String", # The agency ID for this creative.
+    "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",
@@ -504,8 +504,6 @@
           # 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).
-        "status": "A String", # The status of the creative in this context (for example, it has been
-            # explicitly disapproved or is pending review).
         "contexts": [ # The contexts for the restriction.
           { # The serving context for this restriction.
             "all": "A String", # Matches all contexts.
@@ -540,6 +538,8 @@
             },
           },
         ],
+        "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
@@ -685,6 +685,7 @@
     "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
     "native": { # Native content for a creative. # A native creative.
       "body": "A String", # A long description of the ad.
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "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.
@@ -694,15 +695,8 @@
         "height": 42, # Image height in pixels.
       },
       "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.
+      "clickTrackingUrl": "A String", # The URL to use for click tracking.
       "priceDisplayText": "A String", # The price of the promoted app including currency info.
-      "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
-      "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.
-      },
       "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.
@@ -710,7 +704,13 @@
         "width": 42, # Image width in pixels.
         "height": 42, # Image height in pixels.
       },
-      "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "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.
     },
     "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
@@ -718,11 +718,7 @@
         # for possible values.
       42,
     ],
-    "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
-        # See the ad-product-categories.txt file in the technical documentation
-        # for a list of IDs.
-      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.
@@ -733,7 +729,11 @@
         # Can be used to filter the response of the
         # creatives.list
         # method.
-    "agencyId": "A String", # The agency ID for this creative.
+    "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",
@@ -762,8 +762,6 @@
           # 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).
-        "status": "A String", # The status of the creative in this context (for example, it has been
-            # explicitly disapproved or is pending review).
         "contexts": [ # The contexts for the restriction.
           { # The serving context for this restriction.
             "all": "A String", # Matches all contexts.
@@ -798,6 +796,8 @@
             },
           },
         ],
+        "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
@@ -867,7 +867,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(accountId=None, pageSize=None, pageToken=None, query=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(accountId, pageSize=None, pageToken=None, query=None, x__xgafv=None)</code>
   <pre>Lists creatives.
 
 Args:
@@ -972,6 +972,7 @@
         "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
         "native": { # Native content for a creative. # A native creative.
           "body": "A String", # A long description of the ad.
+          "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
           "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.
@@ -981,15 +982,8 @@
             "height": 42, # Image height in pixels.
           },
           "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.
+          "clickTrackingUrl": "A String", # The URL to use for click tracking.
           "priceDisplayText": "A String", # The price of the promoted app including currency info.
-          "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
-          "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.
-          },
           "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.
@@ -997,7 +991,13 @@
             "width": 42, # Image width in pixels.
             "height": 42, # Image height in pixels.
           },
-          "clickTrackingUrl": "A String", # The URL to use for click tracking.
+          "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.
         },
         "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
@@ -1005,11 +1005,7 @@
             # for possible values.
           42,
         ],
-        "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
-            # See the ad-product-categories.txt file in the technical documentation
-            # for a list of IDs.
-          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.
@@ -1020,7 +1016,11 @@
             # Can be used to filter the response of the
             # creatives.list
             # method.
-        "agencyId": "A String", # The agency ID for this creative.
+        "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",
@@ -1049,8 +1049,6 @@
               # 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).
-            "status": "A String", # The status of the creative in this context (for example, it has been
-                # explicitly disapproved or is pending review).
             "contexts": [ # The contexts for the restriction.
               { # The serving context for this restriction.
                 "all": "A String", # Matches all contexts.
@@ -1085,6 +1083,8 @@
                 },
               },
             ],
+            "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
@@ -1170,7 +1170,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="stopWatching">stopWatching(accountId, creativeId=None, body, x__xgafv=None)</code>
+    <code class="details" id="stopWatching">stopWatching(accountId, creativeId, body, x__xgafv=None)</code>
   <pre>Stops watching a creative. Will stop push notifications being sent to the
 topics when the creative changes status.
 
@@ -1205,7 +1205,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(accountId=None, creativeId=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(accountId, creativeId, body, x__xgafv=None)</code>
   <pre>Updates a creative.
 
 Args:
@@ -1282,6 +1282,7 @@
   "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
   "native": { # Native content for a creative. # A native creative.
     "body": "A String", # A long description of the ad.
+    "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
     "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.
@@ -1291,15 +1292,8 @@
       "height": 42, # Image height in pixels.
     },
     "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.
+    "clickTrackingUrl": "A String", # The URL to use for click tracking.
     "priceDisplayText": "A String", # The price of the promoted app including currency info.
-    "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
-    "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.
-    },
     "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.
@@ -1307,7 +1301,13 @@
       "width": 42, # Image width in pixels.
       "height": 42, # Image height in pixels.
     },
-    "clickTrackingUrl": "A String", # The URL to use for click tracking.
+    "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.
   },
   "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
@@ -1315,11 +1315,7 @@
       # for possible values.
     42,
   ],
-  "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
-      # See the ad-product-categories.txt file in the technical documentation
-      # for a list of IDs.
-    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.
@@ -1330,7 +1326,11 @@
       # Can be used to filter the response of the
       # creatives.list
       # method.
-  "agencyId": "A String", # The agency ID for this creative.
+  "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",
@@ -1359,8 +1359,6 @@
         # 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).
-      "status": "A String", # The status of the creative in this context (for example, it has been
-          # explicitly disapproved or is pending review).
       "contexts": [ # The contexts for the restriction.
         { # The serving context for this restriction.
           "all": "A String", # Matches all contexts.
@@ -1395,6 +1393,8 @@
           },
         },
       ],
+      "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
@@ -1532,6 +1532,7 @@
     "adChoicesDestinationUrl": "A String", # The link to AdChoices destination page.
     "native": { # Native content for a creative. # A native creative.
       "body": "A String", # A long description of the ad.
+      "advertiserName": "A String", # The name of the advertiser or sponsor, to be displayed in the ad creative.
       "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.
@@ -1541,15 +1542,8 @@
         "height": 42, # Image height in pixels.
       },
       "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.
+      "clickTrackingUrl": "A String", # The URL to use for click tracking.
       "priceDisplayText": "A String", # The price of the promoted app including currency info.
-      "storeUrl": "A String", # The URL to the app store to purchase/download the promoted app.
-      "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.
-      },
       "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.
@@ -1557,7 +1551,13 @@
         "width": 42, # Image width in pixels.
         "height": 42, # Image height in pixels.
       },
-      "clickTrackingUrl": "A String", # The URL to use for click tracking.
+      "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.
     },
     "vendorIds": [ # All vendor IDs for the ads that may be shown from this creative.
@@ -1565,11 +1565,7 @@
         # for possible values.
       42,
     ],
-    "detectedProductCategories": [ # @OutputOnly Detected product categories, if any.
-        # See the ad-product-categories.txt file in the technical documentation
-        # for a list of IDs.
-      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.
@@ -1580,7 +1576,11 @@
         # Can be used to filter the response of the
         # creatives.list
         # method.
-    "agencyId": "A String", # The agency ID for this creative.
+    "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",
@@ -1609,8 +1609,6 @@
           # 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).
-        "status": "A String", # The status of the creative in this context (for example, it has been
-            # explicitly disapproved or is pending review).
         "contexts": [ # The contexts for the restriction.
           { # The serving context for this restriction.
             "all": "A String", # Matches all contexts.
@@ -1645,6 +1643,8 @@
             },
           },
         ],
+        "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
@@ -1714,7 +1714,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(accountId, creativeId=None, body, x__xgafv=None)</code>
+    <code class="details" id="watch">watch(accountId, creativeId, body, x__xgafv=None)</code>
   <pre>Watches a creative. Will result in push notifications being sent to the
 topic when the creative changes status.
 
diff --git a/docs/dyn/analyticsreporting_v4.reports.html b/docs/dyn/analyticsreporting_v4.reports.html
index ac0d3dc..5b36f8f 100644
--- a/docs/dyn/analyticsreporting_v4.reports.html
+++ b/docs/dyn/analyticsreporting_v4.reports.html
@@ -152,19 +152,6 @@
                     # `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.
             "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.
@@ -208,6 +195,8 @@
                 ],
               },
             ],
+            "maxGroupCount": 42, # Specifies the maximum number of groups to return.
+                # The default value is 10, also the maximum value is 1,000.
             "dimensionFilterClauses": [ # DimensionFilterClauses are logically combined with an `AND` operator: only
                 # data that is included by all these DimensionFilterClauses contributes to
                 # the values in this pivot region. Dimension filters can be used to restrict
@@ -223,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.
-                    "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.
                     "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
@@ -232,13 +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.
-                    "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.
                   },
                 ],
               },
             ],
-            "maxGroupCount": 42, # Specifies the maximum number of groups to return.
-                # The default value is 10, also the maximum value is 1,000.
+            "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.
           },
         ],
         "includeEmptyRows": True or False, # If set to false, the response does not include rows if all the retrieved
@@ -382,7 +382,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.
-                "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.
                 "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
@@ -391,7 +391,7 @@
                 ],
                 "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.
-                "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.
               },
             ],
           },
diff --git a/docs/dyn/appengine_v1.apps.services.versions.html b/docs/dyn/appengine_v1.apps.services.versions.html
index a33a374..bbe2f19 100644
--- a/docs/dyn/appengine_v1.apps.services.versions.html
+++ b/docs/dyn/appengine_v1.apps.services.versions.html
@@ -132,11 +132,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
     },
     "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.
@@ -246,11 +246,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
     "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.
@@ -381,11 +381,11 @@
       "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.
+        "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+        "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
       },
       "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.
@@ -495,11 +495,11 @@
       "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.
+        "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+        "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
       },
       "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.
@@ -575,11 +575,11 @@
           "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.
+            "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+            "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
           },
           "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.
@@ -689,11 +689,11 @@
           "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.
+            "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+            "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
           },
           "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.
@@ -778,11 +778,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
     },
     "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.
@@ -892,11 +892,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
     "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.
diff --git a/docs/dyn/appengine_v1beta.apps.services.versions.html b/docs/dyn/appengine_v1beta.apps.services.versions.html
index e60d96b..89185b9 100644
--- a/docs/dyn/appengine_v1beta.apps.services.versions.html
+++ b/docs/dyn/appengine_v1beta.apps.services.versions.html
@@ -132,11 +132,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
     },
     "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.
@@ -246,11 +246,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
     "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.
@@ -381,11 +381,11 @@
       "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.
+        "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+        "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
       },
       "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.
@@ -495,11 +495,11 @@
       "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.
+        "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+        "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
       },
       "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.
@@ -575,11 +575,11 @@
           "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.
+            "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+            "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
           },
           "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.
@@ -689,11 +689,11 @@
           "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.
+            "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+            "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
           },
           "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.
@@ -778,11 +778,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before receiving traffic.
+      "failureThreshold": 42, # Number of consecutive failed checks required before removing traffic.
     },
     "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.
@@ -892,11 +892,11 @@
     "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.
+      "successThreshold": 42, # Number of consecutive successful checks required before considering the VM healthy.
+      "failureThreshold": 42, # Number of consecutive failed checks required before considering the VM unhealthy.
     },
     "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.
diff --git a/docs/dyn/classroom_v1.courses.aliases.html b/docs/dyn/classroom_v1.courses.aliases.html
index f8cf10b..412d3d4 100644
--- a/docs/dyn/classroom_v1.courses.aliases.html
+++ b/docs/dyn/classroom_v1.courses.aliases.html
@@ -75,20 +75,20 @@
 <h1><a href="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.courses.html">courses</a> . <a href="classroom_v1.courses.aliases.html">aliases</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(courseId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(courseId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates an alias for a course.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(courseId=None, alias=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(courseId, alias, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes an alias of a course.</p>
 <p class="toc_element">
-  <code><a href="#list">list(courseId=None, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
+  <code><a href="#list">list(courseId, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
 <p class="firstline">Returns a list of aliases for a course.</p>
 <p class="toc_element">
   <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(courseId=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(courseId, body, x__xgafv=None)</code>
   <pre>Creates an alias for a course.
 
 This method returns the following error codes:
@@ -168,7 +168,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(courseId=None, alias=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(courseId, alias, x__xgafv=None)</code>
   <pre>Deletes an alias of a course.
 
 This method returns the following error codes:
@@ -207,7 +207,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(courseId=None, pageSize=None, x__xgafv=None, pageToken=None)</code>
+    <code class="details" id="list">list(courseId, pageSize=None, x__xgafv=None, pageToken=None)</code>
   <pre>Returns a list of aliases for a course.
 
 This method returns the following error codes:
diff --git a/docs/dyn/classroom_v1.courses.courseWork.html b/docs/dyn/classroom_v1.courses.courseWork.html
index b5925db..c2d4b16 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.html
@@ -80,26 +80,26 @@
 <p class="firstline">Returns the studentSubmissions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#create">create(courseId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(courseId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates course work.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(courseId=None, id=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(courseId, id, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a course work.</p>
 <p class="toc_element">
-  <code><a href="#get">get(courseId=None, id, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(courseId, id, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns course work.</p>
 <p class="toc_element">
-  <code><a href="#list">list(courseId=None, orderBy=None, courseWorkStates=None, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
+  <code><a href="#list">list(courseId, orderBy=None, courseWorkStates=None, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
 <p class="firstline">Returns a list of course work that the requester is permitted to view.</p>
 <p class="toc_element">
   <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=None, id, body, updateMask=None, x__xgafv=None)</a></code></p>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(courseId=None, body, x__xgafv=None)</code>
+    <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
@@ -442,7 +442,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(courseId=None, id=None, x__xgafv=None)</code>
+    <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
@@ -485,7 +485,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(courseId=None, id, x__xgafv=None)</code>
+    <code class="details" id="get">get(courseId, id, x__xgafv=None)</code>
   <pre>Returns course work.
 
 This method returns the following error codes:
@@ -663,7 +663,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(courseId=None, orderBy=None, courseWorkStates=None, pageSize=None, x__xgafv=None, pageToken=None)</code>
+    <code class="details" id="list">list(courseId, orderBy=None, courseWorkStates=None, pageSize=None, x__xgafv=None, pageToken=None)</code>
   <pre>Returns a list of course work that the requester is permitted to view.
 
 Course students may only view `PUBLISHED` course work. Course teachers
@@ -882,7 +882,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(courseId=None, id, body, updateMask=None, x__xgafv=None)</code>
+    <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
diff --git a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
index f98c36a..912db35 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
@@ -75,32 +75,32 @@
 <h1><a href="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.courses.html">courses</a> . <a href="classroom_v1.courses.courseWork.html">courseWork</a> . <a href="classroom_v1.courses.courseWork.studentSubmissions.html">studentSubmissions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#get">get(courseId=None, courseWorkId, id, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(courseId, courseWorkId, id, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a student submission.</p>
 <p class="toc_element">
-  <code><a href="#list">list(courseId=None, courseWorkId=None, pageSize=None, userId=None, states=None, x__xgafv=None, pageToken=None, late=None)</a></code></p>
+  <code><a href="#list">list(courseId, courseWorkId, pageSize=None, userId=None, states=None, x__xgafv=None, pageToken=None, late=None)</a></code></p>
 <p class="firstline">Returns a list of student submissions that the requester is permitted to</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#modifyAttachments">modifyAttachments(courseId=None, courseWorkId, id, body, x__xgafv=None)</a></code></p>
+  <code><a href="#modifyAttachments">modifyAttachments(courseId, courseWorkId, id, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Modifies attachments of student submission.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(courseId=None, courseWorkId, id, body, updateMask=None, x__xgafv=None)</a></code></p>
+  <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.</p>
 <p class="toc_element">
-  <code><a href="#reclaim">reclaim(courseId=None, courseWorkId, id, body, x__xgafv=None)</a></code></p>
+  <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.</p>
 <p class="toc_element">
-  <code><a href="#return_">return_(courseId=None, courseWorkId, id, body, x__xgafv=None)</a></code></p>
+  <code><a href="#return_">return_(courseId, courseWorkId, id, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a student submission.</p>
 <p class="toc_element">
-  <code><a href="#turnIn">turnIn(courseId=None, courseWorkId, id, body, x__xgafv=None)</a></code></p>
+  <code><a href="#turnIn">turnIn(courseId, courseWorkId, id, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Turns in a student submission.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(courseId=None, courseWorkId, id, x__xgafv=None)</code>
+    <code class="details" id="get">get(courseId, courseWorkId, id, x__xgafv=None)</code>
   <pre>Returns a student submission.
 
 * `PERMISSION_DENIED` if the requesting user is not permitted to access the
@@ -251,7 +251,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(courseId=None, courseWorkId=None, pageSize=None, userId=None, states=None, x__xgafv=None, pageToken=None, late=None)</code>
+    <code class="details" id="list">list(courseId, courseWorkId, pageSize=None, userId=None, states=None, x__xgafv=None, pageToken=None, late=None)</code>
   <pre>Returns a list of student submissions that the requester is permitted to
 view, factoring in the OAuth scopes of the request.
 `-` may be specified as the `course_work_id` to include student
@@ -452,7 +452,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="modifyAttachments">modifyAttachments(courseId=None, courseWorkId, id, body, x__xgafv=None)</code>
+    <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 belonging to course
@@ -676,7 +676,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(courseId=None, courseWorkId, id, body, updateMask=None, x__xgafv=None)</code>
+    <code class="details" id="patch">patch(courseId, courseWorkId, id, body, updateMask=None, x__xgafv=None)</code>
   <pre>Updates one or more fields of a student submission.
 
 See google.classroom.v1.StudentSubmission for details
@@ -972,7 +972,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="reclaim">reclaim(courseId=None, courseWorkId, id, body, x__xgafv=None)</code>
+    <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
@@ -1028,7 +1028,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="return_">return_(courseId=None, courseWorkId, id, body, x__xgafv=None)</code>
+    <code class="details" id="return_">return_(courseId, courseWorkId, id, body, x__xgafv=None)</code>
   <pre>Returns a student submission.
 
 Returning a student submission transfers ownership of attached Drive
@@ -1085,7 +1085,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="turnIn">turnIn(courseId=None, courseWorkId, id, body, x__xgafv=None)</code>
+    <code class="details" id="turnIn">turnIn(courseId, courseWorkId, id, body, x__xgafv=None)</code>
   <pre>Turns in a student submission.
 
 Turning in a student submission transfers ownership of attached Drive
diff --git a/docs/dyn/classroom_v1.courses.html b/docs/dyn/classroom_v1.courses.html
index a449dce..64a47c0 100644
--- a/docs/dyn/classroom_v1.courses.html
+++ b/docs/dyn/classroom_v1.courses.html
@@ -98,10 +98,10 @@
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a course.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(id=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(id, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a course.</p>
 <p class="toc_element">
-  <code><a href="#get">get(id=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(id, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a course.</p>
 <p class="toc_element">
   <code><a href="#list">list(studentId=None, pageSize=None, courseStates=None, teacherId=None, pageToken=None, x__xgafv=None)</a></code></p>
@@ -110,10 +110,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="#patch">patch(id=None, body, updateMask=None, x__xgafv=None)</a></code></p>
+  <code><a href="#patch">patch(id, body, updateMask=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates one or more fields in a course.</p>
 <p class="toc_element">
-  <code><a href="#update">update(id=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(id, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a course.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -450,7 +450,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(id=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(id, x__xgafv=None)</code>
   <pre>Deletes a course.
 
 This method returns the following error codes:
@@ -484,7 +484,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(id=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(id, x__xgafv=None)</code>
   <pre>Returns a course.
 
 This method returns the following error codes:
@@ -875,7 +875,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(id=None, body, updateMask=None, x__xgafv=None)</code>
+    <code class="details" id="patch">patch(id, body, updateMask=None, x__xgafv=None)</code>
   <pre>Updates one or more fields in a course.
 
 This method returns the following error codes:
@@ -1221,7 +1221,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(id=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(id, body, x__xgafv=None)</code>
   <pre>Updates a course.
 
 This method returns the following error codes:
diff --git a/docs/dyn/classroom_v1.courses.students.html b/docs/dyn/classroom_v1.courses.students.html
index 45cf092..a1f7b75 100644
--- a/docs/dyn/classroom_v1.courses.students.html
+++ b/docs/dyn/classroom_v1.courses.students.html
@@ -75,23 +75,23 @@
 <h1><a href="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.courses.html">courses</a> . <a href="classroom_v1.courses.students.html">students</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(courseId=None, body, enrollmentCode=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(courseId, body, enrollmentCode=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Adds a user as a student of a course.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(courseId=None, userId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(courseId, userId, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a student of a course.</p>
 <p class="toc_element">
-  <code><a href="#get">get(courseId=None, userId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(courseId, userId, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a student of a course.</p>
 <p class="toc_element">
-  <code><a href="#list">list(courseId=None, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
+  <code><a href="#list">list(courseId, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
 <p class="firstline">Returns a list of students of this course that the requester</p>
 <p class="toc_element">
   <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(courseId=None, body, enrollmentCode=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(courseId, body, enrollmentCode=None, x__xgafv=None)</code>
   <pre>Adds a user as a student of a course.
 
 This method returns the following error codes:
@@ -248,7 +248,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(courseId=None, userId=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(courseId, userId, x__xgafv=None)</code>
   <pre>Deletes a student of a course.
 
 This method returns the following error codes:
@@ -289,7 +289,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(courseId=None, userId=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(courseId, userId, x__xgafv=None)</code>
   <pre>Returns a student of a course.
 
 This method returns the following error codes:
@@ -379,7 +379,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(courseId=None, pageSize=None, x__xgafv=None, pageToken=None)</code>
+    <code class="details" id="list">list(courseId, pageSize=None, x__xgafv=None, pageToken=None)</code>
   <pre>Returns a list of students of this course that the requester
 is permitted to view.
 
diff --git a/docs/dyn/classroom_v1.courses.teachers.html b/docs/dyn/classroom_v1.courses.teachers.html
index 896454b..d9f3425 100644
--- a/docs/dyn/classroom_v1.courses.teachers.html
+++ b/docs/dyn/classroom_v1.courses.teachers.html
@@ -75,23 +75,23 @@
 <h1><a href="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.courses.html">courses</a> . <a href="classroom_v1.courses.teachers.html">teachers</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(courseId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(courseId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a teacher of a course.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(courseId=None, userId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(courseId, userId, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a teacher of a course.</p>
 <p class="toc_element">
-  <code><a href="#get">get(courseId=None, userId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(courseId, userId, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a teacher of a course.</p>
 <p class="toc_element">
-  <code><a href="#list">list(courseId=None, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
+  <code><a href="#list">list(courseId, pageSize=None, x__xgafv=None, pageToken=None)</a></code></p>
 <p class="firstline">Returns a list of teachers of this course that the requester</p>
 <p class="toc_element">
   <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(courseId=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(courseId, body, x__xgafv=None)</code>
   <pre>Creates a teacher of a course.
 
 This method returns the following error codes:
@@ -221,7 +221,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(courseId=None, userId=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(courseId, userId, x__xgafv=None)</code>
   <pre>Deletes a teacher of a course.
 
 This method returns the following error codes:
@@ -264,7 +264,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(courseId=None, userId=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(courseId, userId, x__xgafv=None)</code>
   <pre>Returns a teacher of a course.
 
 This method returns the following error codes:
@@ -342,7 +342,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(courseId=None, pageSize=None, x__xgafv=None, pageToken=None)</code>
+    <code class="details" id="list">list(courseId, pageSize=None, x__xgafv=None, pageToken=None)</code>
   <pre>Returns a list of teachers of this course that the requester
 is permitted to view.
 
diff --git a/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html b/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html
index 368bcd1..9e046fc 100644
--- a/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html
+++ b/docs/dyn/classroom_v1.userProfiles.guardianInvitations.html
@@ -81,7 +81,7 @@
   <code><a href="#get">get(studentId, invitationId, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a specific guardian invitation.</p>
 <p class="toc_element">
-  <code><a href="#list">list(studentId=None, invitedEmailAddress=None, pageSize=None, states=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(studentId, invitedEmailAddress=None, pageSize=None, states=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a list of guardian invitations that the requesting user is</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -209,7 +209,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(studentId=None, invitedEmailAddress=None, pageSize=None, states=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(studentId, invitedEmailAddress=None, pageSize=None, states=None, pageToken=None, x__xgafv=None)</code>
   <pre>Returns a list of guardian invitations that the requesting user is
 permitted to view, filtered by the parameters provided.
 
diff --git a/docs/dyn/classroom_v1.userProfiles.guardians.html b/docs/dyn/classroom_v1.userProfiles.guardians.html
index d6b335f..f3b6210 100644
--- a/docs/dyn/classroom_v1.userProfiles.guardians.html
+++ b/docs/dyn/classroom_v1.userProfiles.guardians.html
@@ -75,20 +75,20 @@
 <h1><a href="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.userProfiles.html">userProfiles</a> . <a href="classroom_v1.userProfiles.guardians.html">guardians</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(studentId=None, guardianId, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(studentId, guardianId, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a guardian.</p>
 <p class="toc_element">
-  <code><a href="#get">get(studentId=None, guardianId, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(studentId, guardianId, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a specific guardian.</p>
 <p class="toc_element">
-  <code><a href="#list">list(studentId=None, invitedEmailAddress=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
   <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(studentId=None, guardianId, x__xgafv=None)</code>
+    <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
@@ -136,7 +136,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(studentId=None, guardianId, x__xgafv=None)</code>
+    <code class="details" id="get">get(studentId, guardianId, x__xgafv=None)</code>
   <pre>Returns a specific guardian.
 
 This method returns the following error codes:
@@ -210,7 +210,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(studentId=None, invitedEmailAddress=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(studentId, invitedEmailAddress=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Returns a list of guardians that the requesting user is permitted to
 view, restricted to those that match the request.
 
diff --git a/docs/dyn/classroom_v1.userProfiles.html b/docs/dyn/classroom_v1.userProfiles.html
index 7eefd0e..8a1a8cf 100644
--- a/docs/dyn/classroom_v1.userProfiles.html
+++ b/docs/dyn/classroom_v1.userProfiles.html
@@ -85,11 +85,11 @@
 <p class="firstline">Returns the guardians Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#get">get(userId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(userId, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a user profile.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(userId=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(userId, x__xgafv=None)</code>
   <pre>Returns a user profile.
 
 This method returns the following error codes:
diff --git a/docs/dyn/cloudbilling_v1.billingAccounts.html b/docs/dyn/cloudbilling_v1.billingAccounts.html
index 42965e9..f7dae92 100644
--- a/docs/dyn/cloudbilling_v1.billingAccounts.html
+++ b/docs/dyn/cloudbilling_v1.billingAccounts.html
@@ -80,7 +80,7 @@
 <p class="firstline">Returns the projects Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
@@ -90,7 +90,7 @@
 <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>
+    <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).
diff --git a/docs/dyn/cloudbilling_v1.billingAccounts.projects.html b/docs/dyn/cloudbilling_v1.billingAccounts.projects.html
index 8edfd53..4252bfc 100644
--- a/docs/dyn/cloudbilling_v1.billingAccounts.projects.html
+++ b/docs/dyn/cloudbilling_v1.billingAccounts.projects.html
@@ -75,14 +75,14 @@
 <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=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
   <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=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <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).
diff --git a/docs/dyn/cloudbilling_v1.projects.html b/docs/dyn/cloudbilling_v1.projects.html
index feabbce..463e54f 100644
--- a/docs/dyn/cloudbilling_v1.projects.html
+++ b/docs/dyn/cloudbilling_v1.projects.html
@@ -75,14 +75,14 @@
 <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=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#updateBillingInfo">updateBillingInfo(name=None, body, x__xgafv=None)</a></code></p>
+  <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</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="getBillingInfo">getBillingInfo(name=None, x__xgafv=None)</code>
+    <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
@@ -119,7 +119,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="updateBillingInfo">updateBillingInfo(name=None, body, x__xgafv=None)</code>
+    <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.
diff --git a/docs/dyn/cloudbuild_v1.operations.html b/docs/dyn/cloudbuild_v1.operations.html
index d6c21f0..990690d 100644
--- a/docs/dyn/cloudbuild_v1.operations.html
+++ b/docs/dyn/cloudbuild_v1.operations.html
@@ -146,12 +146,6 @@
 
     { # 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:
@@ -231,6 +225,12 @@
     "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>
 
@@ -256,15 +256,10 @@
   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:
@@ -344,9 +339,14 @@
         "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>
 
diff --git a/docs/dyn/cloudbuild_v1.projects.builds.html b/docs/dyn/cloudbuild_v1.projects.builds.html
index 87c4873..d679463 100644
--- a/docs/dyn/cloudbuild_v1.projects.builds.html
+++ b/docs/dyn/cloudbuild_v1.projects.builds.html
@@ -168,15 +168,6 @@
     },
     "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
         # service.
-      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-          # 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.
-      },
       "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
           # Storage.
           # Google Cloud Storage.
@@ -190,6 +181,15 @@
             # [Bucket Name
             # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
       },
+      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+          # 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.
+      },
     },
     "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
         # triggered automatically.
@@ -250,9 +250,9 @@
         "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.
       },
       "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
@@ -383,15 +383,6 @@
   },
   "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
       # service.
-    "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-        # 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.
-    },
     "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
         # Storage.
         # Google Cloud Storage.
@@ -405,6 +396,15 @@
           # [Bucket Name
           # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
     },
+    "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+        # 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.
+    },
   },
   "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
       # triggered automatically.
@@ -465,9 +465,9 @@
       "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.
     },
     "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
@@ -537,12 +537,6 @@
 
     { # 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:
@@ -622,6 +616,12 @@
     "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>
 
@@ -700,15 +700,6 @@
     },
     "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
         # service.
-      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-          # 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.
-      },
       "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
           # Storage.
           # Google Cloud Storage.
@@ -722,6 +713,15 @@
             # [Bucket Name
             # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
       },
+      "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+          # 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.
+      },
     },
     "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
         # triggered automatically.
@@ -782,9 +782,9 @@
         "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.
       },
       "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
@@ -925,15 +925,6 @@
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # 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.
-          },
           "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
               # Storage.
               # Google Cloud Storage.
@@ -947,6 +938,15 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # 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.
+          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
@@ -1007,9 +1007,9 @@
             "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.
           },
           "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
diff --git a/docs/dyn/cloudbuild_v1.projects.triggers.html b/docs/dyn/cloudbuild_v1.projects.triggers.html
index a22109c..3abcce7 100644
--- a/docs/dyn/cloudbuild_v1.projects.triggers.html
+++ b/docs/dyn/cloudbuild_v1.projects.triggers.html
@@ -107,19 +107,8 @@
     "createTime": "A String", # Time when the trigger was created.
         # 
         # @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.
-    },
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
     "disabled": True or False, # If true, the trigger will never result in a build.
     "substitutions": { # Substitutions data for Build resource.
       "a_key": "A String",
@@ -181,15 +170,6 @@
       },
       "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
           # service.
-        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-            # 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.
-        },
         "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
             # Storage.
             # Google Cloud Storage.
@@ -203,6 +183,15 @@
               # [Bucket Name
               # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
         },
+        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+            # 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.
+        },
       },
       "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
           # triggered automatically.
@@ -263,9 +252,9 @@
           "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.
         },
         "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
@@ -324,8 +313,19 @@
       "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.
+    "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.
+    },
     "id": "A String", # Unique identifier of the trigger.
         # 
         # @OutputOnly
@@ -345,19 +345,8 @@
       "createTime": "A String", # Time when the trigger was created.
           #
           # @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.
-      },
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "disabled": True or False, # If true, the trigger will never result in a build.
       "substitutions": { # Substitutions data for Build resource.
         "a_key": "A String",
@@ -419,15 +408,6 @@
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # 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.
-          },
           "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
               # Storage.
               # Google Cloud Storage.
@@ -441,6 +421,15 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # 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.
+          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
@@ -501,9 +490,9 @@
             "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.
           },
           "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
@@ -562,8 +551,19 @@
         "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.
+      "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.
+      },
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
@@ -622,19 +622,8 @@
       "createTime": "A String", # Time when the trigger was created.
           #
           # @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.
-      },
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "disabled": True or False, # If true, the trigger will never result in a build.
       "substitutions": { # Substitutions data for Build resource.
         "a_key": "A String",
@@ -696,15 +685,6 @@
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # 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.
-          },
           "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
               # Storage.
               # Google Cloud Storage.
@@ -718,6 +698,15 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # 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.
+          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
@@ -778,9 +767,9 @@
             "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.
           },
           "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
@@ -839,8 +828,19 @@
         "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.
+      "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.
+      },
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
@@ -871,19 +871,8 @@
           "createTime": "A String", # Time when the trigger was created.
               #
               # @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.
-          },
+          "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+              # template.
           "disabled": True or False, # If true, the trigger will never result in a build.
           "substitutions": { # Substitutions data for Build resource.
             "a_key": "A String",
@@ -945,15 +934,6 @@
             },
             "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
                 # service.
-              "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-                  # 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.
-              },
               "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
                   # Storage.
                   # Google Cloud Storage.
@@ -967,6 +947,15 @@
                     # [Bucket Name
                     # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
               },
+              "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+                  # 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.
+              },
             },
             "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
                 # triggered automatically.
@@ -1027,9 +1016,9 @@
                 "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.
               },
               "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
@@ -1088,8 +1077,19 @@
             "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.
+          "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.
+          },
           "id": "A String", # Unique identifier of the trigger.
               #
               # @OutputOnly
@@ -1116,19 +1116,8 @@
     "createTime": "A String", # Time when the trigger was created.
         # 
         # @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.
-    },
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
     "disabled": True or False, # If true, the trigger will never result in a build.
     "substitutions": { # Substitutions data for Build resource.
       "a_key": "A String",
@@ -1190,15 +1179,6 @@
       },
       "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
           # service.
-        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-            # 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.
-        },
         "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
             # Storage.
             # Google Cloud Storage.
@@ -1212,6 +1192,15 @@
               # [Bucket Name
               # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
         },
+        "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+            # 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.
+        },
       },
       "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
           # triggered automatically.
@@ -1272,9 +1261,9 @@
           "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.
         },
         "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
@@ -1333,8 +1322,19 @@
       "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.
+    "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.
+    },
     "id": "A String", # Unique identifier of the trigger.
         # 
         # @OutputOnly
@@ -1354,19 +1354,8 @@
       "createTime": "A String", # Time when the trigger was created.
           #
           # @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.
-      },
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
       "disabled": True or False, # If true, the trigger will never result in a build.
       "substitutions": { # Substitutions data for Build resource.
         "a_key": "A String",
@@ -1428,15 +1417,6 @@
         },
         "source": { # Source describes the location of the source in a supported storage # Describes where to find the source files to build.
             # service.
-          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
-              # 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.
-          },
           "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
               # Storage.
               # Google Cloud Storage.
@@ -1450,6 +1430,15 @@
                 # [Bucket Name
                 # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
           },
+          "repoSource": { # RepoSource describes the location of the source in a Google Cloud Source # If provided, get source from this location in a Cloud Repo.
+              # 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.
+          },
         },
         "buildTriggerId": "A String", # The ID of the BuildTrigger that triggered this build, if it was
             # triggered automatically.
@@ -1510,9 +1499,9 @@
             "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.
           },
           "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
@@ -1571,8 +1560,19 @@
         "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.
+      "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.
+      },
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
diff --git a/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html b/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
index 641c2cc..f447e28 100644
--- a/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
+++ b/docs/dyn/clouddebugger_v2.controller.debuggees.breakpoints.html
@@ -335,180 +335,30 @@
                 # rather than a static type of an object.
           },
         ],
-        "userEmail": "A String", # E-mail address of the user that created this breakpoint
+        "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.
           "a_key": "A String",
         },
+        "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.
             "function": "A String", # Demangled function name at the call site.
-            "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.`
-                  },
-                },
-                "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.
-                "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.
-              },
-            ],
+            "location": { # Represents a location in the source code. # Source location of the call site.
+              "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.
@@ -674,35 +524,185 @@
                     # rather than a static type of an object.
               },
             ],
-            "location": { # Represents a location in the source code. # Source location of the call site.
-              "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`.
-            },
+            "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.`
+                  },
+                },
+                "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.
+                "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.
+              },
+            ],
           },
         ],
-        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
+        "location": { # Represents a location in the source code. # Breakpoint source location.
+          "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.
           "A String",
         ],
-        "location": { # Represents a location in the source code. # Breakpoint source location.
-          "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`.
-        },
-        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-            # resolution.
-        "action": "A String", # Action that the agent should perform when the code at the
-            # breakpoint location is hit.
-        "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 ]`.
         "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.
@@ -1116,180 +1116,30 @@
               # rather than a static type of an object.
         },
       ],
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
+      "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.
         "a_key": "A String",
       },
+      "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.
           "function": "A String", # Demangled function name at the call site.
-          "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.`
-                },
-              },
-              "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.
-              "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.
-            },
-          ],
+          "location": { # Represents a location in the source code. # Source location of the call site.
+            "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.
@@ -1455,35 +1305,185 @@
                   # rather than a static type of an object.
             },
           ],
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "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`.
-          },
+          "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.`
+                },
+              },
+              "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.
+              "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.
+            },
+          ],
         },
       ],
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
+      "location": { # Represents a location in the source code. # Breakpoint source location.
+        "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.
         "A String",
       ],
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "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`.
-      },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
-      "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 ]`.
       "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.
diff --git a/docs/dyn/clouddebugger_v2.controller.debuggees.html b/docs/dyn/clouddebugger_v2.controller.debuggees.html
index 46ed047..6b4e1e9 100644
--- a/docs/dyn/clouddebugger_v2.controller.debuggees.html
+++ b/docs/dyn/clouddebugger_v2.controller.debuggees.html
@@ -160,8 +160,6 @@
             "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.
-              "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.
               "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 # A combination of a project ID and a repo name.
                     # (e.g. winged-cargo-31) and a repo name within that project.
@@ -170,6 +168,8 @@
                 },
                 "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.
             },
           },
           "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -200,12 +200,12 @@
               "kind": "A String", # The alias kind.
               "name": "A String", # The alias name.
             },
-            "revisionId": "A String", # A revision (commit) ID.
+            "hostUri": "A String", # The URI of a running Gerrit instance.
             "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.
-            "hostUri": "A String", # The URI of a running Gerrit instance.
             "aliasName": "A String", # The name of an alias (branch, tag, etc.).
+            "revisionId": "A String", # A revision (commit) ID.
           },
         },
       ],
@@ -228,8 +228,6 @@
               "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.
-                "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.
                 "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 # A combination of a project ID and a repo name.
                       # (e.g. winged-cargo-31) and a repo name within that project.
@@ -238,6 +236,8 @@
                   },
                   "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.
               },
             },
             "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -268,12 +268,12 @@
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
               },
-              "revisionId": "A String", # A revision (commit) ID.
+              "hostUri": "A String", # The URI of a running Gerrit instance.
               "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.
-              "hostUri": "A String", # The URI of a running Gerrit instance.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
+              "revisionId": "A String", # A revision (commit) ID.
             },
           },
         },
@@ -354,8 +354,6 @@
             "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.
-              "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.
               "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 # A combination of a project ID and a repo name.
                     # (e.g. winged-cargo-31) and a repo name within that project.
@@ -364,6 +362,8 @@
                 },
                 "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.
             },
           },
           "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -394,12 +394,12 @@
               "kind": "A String", # The alias kind.
               "name": "A String", # The alias name.
             },
-            "revisionId": "A String", # A revision (commit) ID.
+            "hostUri": "A String", # The URI of a running Gerrit instance.
             "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.
-            "hostUri": "A String", # The URI of a running Gerrit instance.
             "aliasName": "A String", # The name of an alias (branch, tag, etc.).
+            "revisionId": "A String", # A revision (commit) ID.
           },
         },
       ],
@@ -422,8 +422,6 @@
               "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.
-                "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.
                 "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 # A combination of a project ID and a repo name.
                       # (e.g. winged-cargo-31) and a repo name within that project.
@@ -432,6 +430,8 @@
                   },
                   "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.
               },
             },
             "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -462,12 +462,12 @@
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
               },
-              "revisionId": "A String", # A revision (commit) ID.
+              "hostUri": "A String", # The URI of a running Gerrit instance.
               "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.
-              "hostUri": "A String", # The URI of a running Gerrit instance.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
+              "revisionId": "A String", # A revision (commit) ID.
             },
           },
         },
diff --git a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
index 081f52d..d84c5dd 100644
--- a/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
+++ b/docs/dyn/clouddebugger_v2.debugger.debuggees.breakpoints.html
@@ -347,180 +347,30 @@
               # rather than a static type of an object.
         },
       ],
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
+      "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.
         "a_key": "A String",
       },
+      "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.
           "function": "A String", # Demangled function name at the call site.
-          "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.`
-                },
-              },
-              "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.
-              "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.
-            },
-          ],
+          "location": { # Represents a location in the source code. # Source location of the call site.
+            "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.
@@ -686,35 +536,185 @@
                   # rather than a static type of an object.
             },
           ],
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "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`.
-          },
+          "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.`
+                },
+              },
+              "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.
+              "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.
+            },
+          ],
         },
       ],
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
+      "location": { # Represents a location in the source code. # Breakpoint source location.
+        "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.
         "A String",
       ],
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "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`.
-      },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
-      "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 ]`.
       "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.
@@ -1142,180 +1142,30 @@
                 # rather than a static type of an object.
           },
         ],
-        "userEmail": "A String", # E-mail address of the user that created this breakpoint
+        "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.
           "a_key": "A String",
         },
+        "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.
             "function": "A String", # Demangled function name at the call site.
-            "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.`
-                  },
-                },
-                "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.
-                "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.
-              },
-            ],
+            "location": { # Represents a location in the source code. # Source location of the call site.
+              "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.
@@ -1481,35 +1331,185 @@
                     # rather than a static type of an object.
               },
             ],
-            "location": { # Represents a location in the source code. # Source location of the call site.
-              "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`.
-            },
+            "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.`
+                  },
+                },
+                "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.
+                "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.
+              },
+            ],
           },
         ],
-        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
+        "location": { # Represents a location in the source code. # Breakpoint source location.
+          "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.
           "A String",
         ],
-        "location": { # Represents a location in the source code. # Breakpoint source location.
-          "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`.
-        },
-        "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-            # resolution.
-        "action": "A String", # Action that the agent should perform when the code at the
-            # breakpoint location is hit.
-        "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 ]`.
         "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.
@@ -1912,180 +1912,30 @@
           # rather than a static type of an object.
     },
   ],
-  "userEmail": "A String", # E-mail address of the user that created this breakpoint
+  "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.
     "a_key": "A String",
   },
+  "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.
       "function": "A String", # Demangled function name at the call site.
-      "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.`
-            },
-          },
-          "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.
-          "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.
-        },
-      ],
+      "location": { # Represents a location in the source code. # Source location of the call site.
+        "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.
@@ -2251,35 +2101,185 @@
               # rather than a static type of an object.
         },
       ],
-      "location": { # Represents a location in the source code. # Source location of the call site.
-        "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`.
-      },
+      "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.`
+            },
+          },
+          "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.
+          "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.
+        },
+      ],
     },
   ],
-  "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
+  "location": { # Represents a location in the source code. # Breakpoint source location.
+    "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.
     "A String",
   ],
-  "location": { # Represents a location in the source code. # Breakpoint source location.
-    "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`.
-  },
-  "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-      # resolution.
-  "action": "A String", # Action that the agent should perform when the code at the
-      # breakpoint location is hit.
-  "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 ]`.
   "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.
@@ -2682,180 +2682,30 @@
               # rather than a static type of an object.
         },
       ],
-      "userEmail": "A String", # E-mail address of the user that created this breakpoint
+      "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.
         "a_key": "A String",
       },
+      "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.
           "function": "A String", # Demangled function name at the call site.
-          "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.`
-                },
-              },
-              "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.
-              "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.
-            },
-          ],
+          "location": { # Represents a location in the source code. # Source location of the call site.
+            "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.
@@ -3021,35 +2871,185 @@
                   # rather than a static type of an object.
             },
           ],
-          "location": { # Represents a location in the source code. # Source location of the call site.
-            "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`.
-          },
+          "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.`
+                },
+              },
+              "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.
+              "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.
+            },
+          ],
         },
       ],
-      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
+      "location": { # Represents a location in the source code. # Breakpoint source location.
+        "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.
         "A String",
       ],
-      "location": { # Represents a location in the source code. # Breakpoint source location.
-        "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`.
-      },
-      "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
-          # resolution.
-      "action": "A String", # Action that the agent should perform when the code at the
-          # breakpoint location is hit.
-      "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 ]`.
       "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.
diff --git a/docs/dyn/clouddebugger_v2.debugger.debuggees.html b/docs/dyn/clouddebugger_v2.debugger.debuggees.html
index 78a862b..ee65a67 100644
--- a/docs/dyn/clouddebugger_v2.debugger.debuggees.html
+++ b/docs/dyn/clouddebugger_v2.debugger.debuggees.html
@@ -164,8 +164,6 @@
               "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.
-                "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.
                 "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 # A combination of a project ID and a repo name.
                       # (e.g. winged-cargo-31) and a repo name within that project.
@@ -174,6 +172,8 @@
                   },
                   "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.
               },
             },
             "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -204,12 +204,12 @@
                 "kind": "A String", # The alias kind.
                 "name": "A String", # The alias name.
               },
-              "revisionId": "A String", # A revision (commit) ID.
+              "hostUri": "A String", # The URI of a running Gerrit instance.
               "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.
-              "hostUri": "A String", # The URI of a running Gerrit instance.
               "aliasName": "A String", # The name of an alias (branch, tag, etc.).
+              "revisionId": "A String", # A revision (commit) ID.
             },
           },
         ],
@@ -232,8 +232,6 @@
                 "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.
-                  "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.
                   "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 # A combination of a project ID and a repo name.
                         # (e.g. winged-cargo-31) and a repo name within that project.
@@ -242,6 +240,8 @@
                     },
                     "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.
                 },
               },
               "cloudRepo": { # A CloudRepoSourceContext denotes a particular revision in a cloud # A SourceContext referring to a revision in a cloud repo.
@@ -272,12 +272,12 @@
                   "kind": "A String", # The alias kind.
                   "name": "A String", # The alias name.
                 },
-                "revisionId": "A String", # A revision (commit) ID.
+                "hostUri": "A String", # The URI of a running Gerrit instance.
                 "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.
-                "hostUri": "A String", # The URI of a running Gerrit instance.
                 "aliasName": "A String", # The name of an alias (branch, tag, etc.).
+                "revisionId": "A String", # A revision (commit) ID.
               },
             },
           },
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.events.html b/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
index 3a304ad..9b28397 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.events.html
@@ -75,17 +75,17 @@
 <h1><a href="clouderrorreporting_v1beta1.html">Stackdriver Error Reporting API</a> . <a href="clouderrorreporting_v1beta1.projects.html">projects</a> . <a href="clouderrorreporting_v1beta1.projects.events.html">events</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(projectName=None, pageSize=None, x__xgafv=None, serviceFilter_resourceType=None, timeRange_period=None, serviceFilter_version=None, pageToken=None, serviceFilter_service=None, groupId=None)</a></code></p>
+  <code><a href="#list">list(projectName, pageSize=None, x__xgafv=None, serviceFilter_resourceType=None, timeRange_period=None, serviceFilter_version=None, pageToken=None, serviceFilter_service=None, groupId=None)</a></code></p>
 <p class="firstline">Lists the specified events.</p>
 <p class="toc_element">
   <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="#report">report(projectName=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#report">report(projectName, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Report an individual error event.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(projectName=None, pageSize=None, x__xgafv=None, serviceFilter_resourceType=None, timeRange_period=None, serviceFilter_version=None, pageToken=None, serviceFilter_service=None, groupId=None)</code>
+    <code class="details" id="list">list(projectName, pageSize=None, x__xgafv=None, serviceFilter_resourceType=None, timeRange_period=None, serviceFilter_version=None, pageToken=None, serviceFilter_service=None, groupId=None)</code>
   <pre>Lists the specified events.
 
 Args:
@@ -135,10 +135,10 @@
               # Contains the service name for error reports extracted from Google
               # App Engine logs or `default` if the App Engine default service is used.
         },
-        "message": "A String", # The stack trace that was reported or logged by the service.
         "eventTime": "A String", # Time when the event occurred as provided in the error report.
             # If the report did not contain a timestamp, the time the error was received
             # by the Error Reporting system is used.
+        "message": "A String", # The stack trace that was reported or logged by the service.
         "context": { # A description of the context in which an error occurred. # Data about the context in which the error occurred.
             # This data should be provided by the application when reporting an error,
             # unless the
@@ -205,7 +205,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="report">report(projectName=None, body, x__xgafv=None)</code>
+    <code class="details" id="report">report(projectName, body, x__xgafv=None)</code>
   <pre>Report an individual error event.
 
 This endpoint accepts <strong>either</strong> an OAuth token,
@@ -241,6 +241,9 @@
           # Contains the service name for error reports extracted from Google
           # App Engine logs or `default` if the App Engine default service is used.
     },
+    "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] 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
@@ -258,9 +261,6 @@
         # * **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).
-    "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.
     "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
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html b/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
index 931fc84..2efbcd0 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.groupStats.html
@@ -75,14 +75,14 @@
 <h1><a href="clouderrorreporting_v1beta1.html">Stackdriver Error Reporting API</a> . <a href="clouderrorreporting_v1beta1.projects.html">projects</a> . <a href="clouderrorreporting_v1beta1.projects.groupStats.html">groupStats</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(projectName=None, alignmentTime=None, pageSize=None, x__xgafv=None, alignment=None, serviceFilter_resourceType=None, timedCountDuration=None, timeRange_period=None, pageToken=None, serviceFilter_version=None, serviceFilter_service=None, groupId=None, order=None)</a></code></p>
+  <code><a href="#list">list(projectName, alignmentTime=None, pageSize=None, x__xgafv=None, alignment=None, serviceFilter_resourceType=None, timedCountDuration=None, timeRange_period=None, pageToken=None, serviceFilter_version=None, serviceFilter_service=None, groupId=None, order=None)</a></code></p>
 <p class="firstline">Lists the specified groups.</p>
 <p class="toc_element">
   <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(projectName=None, alignmentTime=None, pageSize=None, x__xgafv=None, alignment=None, serviceFilter_resourceType=None, timedCountDuration=None, timeRange_period=None, pageToken=None, serviceFilter_version=None, serviceFilter_service=None, groupId=None, order=None)</code>
+    <code class="details" id="list">list(projectName, alignmentTime=None, pageSize=None, x__xgafv=None, alignment=None, serviceFilter_resourceType=None, timedCountDuration=None, timeRange_period=None, pageToken=None, serviceFilter_version=None, serviceFilter_service=None, groupId=None, order=None)</code>
   <pre>Lists the specified groups.
 
 Args:
@@ -125,6 +125,10 @@
     "nextPageToken": "A String", # If non-empty, more results are available.
         # Pass this token, along with the same query parameters as the first
         # request, to view the next page of results.
+    "timeRangeBegin": "A String", # The timestamp specifies the start time to which the request was restricted.
+        # The start time is set based on the requested time range. It may be adjusted
+        # to a later time if a project has exceeded the storage quota and older data
+        # has been deleted.
     "errorGroupStats": [ # The error group stats which match the given request.
       { # Data extracted for a specific group based on certain filter criteria,
           # such as a given time period and/or service filter.
@@ -145,18 +149,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:
             #
@@ -196,10 +209,10 @@
                 # Contains the service name for error reports extracted from Google
                 # App Engine logs or `default` if the App Engine default service is used.
           },
-          "message": "A String", # The stack trace that was reported or logged by the service.
           "eventTime": "A String", # Time when the event occurred as provided in the error report.
               # If the report did not contain a timestamp, the time the error was received
               # by the Error Reporting system is used.
+          "message": "A String", # The stack trace that was reported or logged by the service.
           "context": { # A description of the context in which an error occurred. # Data about the context in which the error occurred.
               # This data should be provided by the application when reporting an error,
               # unless the
@@ -248,33 +261,20 @@
         },
         "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.
-        # The start time is set based on the requested time range. It may be adjusted
-        # to a later time if a project has exceeded the storage quota and older data
-        # has been deleted.
   }</pre>
 </div>
 
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.groups.html b/docs/dyn/clouderrorreporting_v1beta1.projects.groups.html
index 1291f94..2d7e9da 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.groups.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.groups.html
@@ -75,14 +75,14 @@
 <h1><a href="clouderrorreporting_v1beta1.html">Stackdriver Error Reporting API</a> . <a href="clouderrorreporting_v1beta1.projects.html">projects</a> . <a href="clouderrorreporting_v1beta1.projects.groups.html">groups</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#get">get(groupName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(groupName, x__xgafv=None)</a></code></p>
 <p class="firstline">Get the specified group.</p>
 <p class="toc_element">
-  <code><a href="#update">update(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Replace the data for the specified group.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(groupName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(groupName, x__xgafv=None)</code>
   <pre>Get the specified group.
 
 Args:
@@ -117,7 +117,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(name, body, x__xgafv=None)</code>
   <pre>Replace the data for the specified group.
 Fails if the group does not exist.
 
diff --git a/docs/dyn/clouderrorreporting_v1beta1.projects.html b/docs/dyn/clouderrorreporting_v1beta1.projects.html
index 7929c1f..f0bcc30 100644
--- a/docs/dyn/clouderrorreporting_v1beta1.projects.html
+++ b/docs/dyn/clouderrorreporting_v1beta1.projects.html
@@ -90,11 +90,11 @@
 <p class="firstline">Returns the groups Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#deleteEvents">deleteEvents(projectName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#deleteEvents">deleteEvents(projectName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes all error events of a given project.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="deleteEvents">deleteEvents(projectName=None, x__xgafv=None)</code>
+    <code class="details" id="deleteEvents">deleteEvents(projectName, x__xgafv=None)</code>
   <pre>Deletes all error events of a given project.
 
 Args:
diff --git a/docs/dyn/cloudfunctions_v1beta2.operations.html b/docs/dyn/cloudfunctions_v1beta2.operations.html
index 3a2025f..8171552 100644
--- a/docs/dyn/cloudfunctions_v1beta2.operations.html
+++ b/docs/dyn/cloudfunctions_v1beta2.operations.html
@@ -102,12 +102,28 @@
 
     { # 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`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "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.
+    "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:
@@ -171,22 +187,6 @@
         },
       ],
     },
-    "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>
 
@@ -212,15 +212,32 @@
   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`.
+          "a_key": "", # Properties of the object. Contains field @type with type URL.
+        },
         "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.
+        "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,25 +301,8 @@
             },
           ],
         },
-        "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/cloudfunctions_v1beta2.projects.locations.functions.html b/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
index 7cddd05..64603ad 100644
--- a/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
+++ b/docs/dyn/cloudfunctions_v1beta2.projects.locations.functions.html
@@ -78,7 +78,7 @@
   <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>
+  <code><a href="#create">create(location, 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>
@@ -87,7 +87,7 @@
   <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>
+  <code><a href="#list">list(location, 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>
@@ -128,7 +128,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(location=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(location, 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.
@@ -214,12 +214,28 @@
 
     { # 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`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "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.
+    "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:
@@ -283,22 +299,6 @@
         },
       ],
     },
-    "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>
 
@@ -320,12 +320,28 @@
 
     { # 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`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "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.
+    "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:
@@ -389,22 +405,6 @@
         },
       ],
     },
-    "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>
 
@@ -489,7 +489,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(location=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(location, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Returns a list of functions that belong to the requested project.
 
 Args:
@@ -682,12 +682,28 @@
 
     { # 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`.
+      "a_key": "", # Properties of the object. Contains field @type with type URL.
+    },
     "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.
+    "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:
@@ -751,22 +767,6 @@
         },
       ],
     },
-    "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/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
index 54dbdc4..ddcdcc7 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
@@ -75,7 +75,7 @@
 <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>
+  <code><a href="#create">create(parent, 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>
@@ -84,20 +84,20 @@
   <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>
+  <code><a href="#list">list(parent, 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>
+  <code><a href="#patch">patch(name, 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>
+    <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
   <pre>Create a new CryptoKeyVersion in a CryptoKey.
 
 The server will assign the next sequential id. If unset,
@@ -117,15 +117,15 @@
     # 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.
-  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
   "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
       # destroyed. Only present if state is
       # DESTROYED.
-  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
 }
 
   x__xgafv: string, V1 error format.
@@ -143,15 +143,15 @@
       # 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.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
@@ -193,15 +193,15 @@
       # 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.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
@@ -226,20 +226,20 @@
       # 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.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists CryptoKeyVersions.
 
 Args:
@@ -274,15 +274,15 @@
           # 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.
-        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
         "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
             # destroyed. Only present if state is
             # DESTROYED.
-        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
       },
     ],
   }</pre>
@@ -303,7 +303,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(name=None, body, updateMask=None, x__xgafv=None)</code>
+    <code class="details" id="patch">patch(name, body, updateMask=None, x__xgafv=None)</code>
   <pre>Update a CryptoKeyVersion's metadata.
 
 state may be changed between
@@ -325,15 +325,15 @@
     # 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.
-  "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
   "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
       # destroyed. Only present if state is
       # DESTROYED.
-  "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-      # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
 }
 
   updateMask: string, Required list of fields to be updated in this request.
@@ -352,15 +352,15 @@
       # 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.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
@@ -397,15 +397,15 @@
       # 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.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   }</pre>
 </div>
 
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
index f091223..931fe60 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
@@ -80,41 +80,41 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#decrypt">decrypt(name, 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>
+  <code><a href="#encrypt">encrypt(name, 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>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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>
+  <code><a href="#list">list(parent, 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>
+  <code><a href="#patch">patch(name, 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>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</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>
+    <code class="details" id="create">create(parent, body, cryptoKeyId=None, x__xgafv=None)</code>
   <pre>Create a new CryptoKey within a KeyRing.
 
 CryptoKey.purpose is required.
@@ -148,15 +148,15 @@
       # 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.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   },
   "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
       # purpose is ENCRYPT_DECRYPT.
@@ -205,15 +205,15 @@
         # 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.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
@@ -231,7 +231,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="decrypt">decrypt(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="decrypt">decrypt(name, body, x__xgafv=None)</code>
   <pre>Decrypt data that was protected by Encrypt.
 
 Args:
@@ -261,7 +261,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="encrypt">encrypt(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="encrypt">encrypt(name, body, x__xgafv=None)</code>
   <pre>Encrypt data, so that it can only be recovered by a call to Decrypt.
 
 Args:
@@ -332,15 +332,15 @@
         # 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.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
@@ -358,7 +358,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -595,7 +595,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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists CryptoKeys.
 
 Args:
@@ -642,15 +642,15 @@
             # 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.
-          "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
           "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
               # destroyed. Only present if state is
               # DESTROYED.
-          "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-              # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
         },
         "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
             # purpose is ENCRYPT_DECRYPT.
@@ -685,7 +685,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(name=None, body, updateMask=None, x__xgafv=None)</code>
+    <code class="details" id="patch">patch(name, body, updateMask=None, x__xgafv=None)</code>
   <pre>Update a CryptoKey.
 
 Args:
@@ -717,15 +717,15 @@
       # 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.
-    "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
     "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
         # destroyed. Only present if state is
         # DESTROYED.
-    "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-        # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
   },
   "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
       # purpose is ENCRYPT_DECRYPT.
@@ -773,15 +773,15 @@
         # 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.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
@@ -799,7 +799,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -1267,7 +1267,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
@@ -1351,15 +1351,15 @@
         # 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.
-      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
       "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
           # destroyed. Only present if state is
           # DESTROYED.
-      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
-          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
     },
     "purpose": "A String", # The immutable purpose of this CryptoKey. Currently, the only acceptable
         # purpose is ENCRYPT_DECRYPT.
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
index bf8034c..aae8bfd 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.html
@@ -80,29 +80,29 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=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>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, keyRingId=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, keyRingId=None, x__xgafv=None)</code>
   <pre>Create a new KeyRing in a given Project and Location.
 
 Args:
@@ -156,7 +156,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -393,22 +393,22 @@
 </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, pageSize=None, pageToken=None, x__xgafv=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)
+  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.
   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:
@@ -442,7 +442,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -910,7 +910,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
diff --git a/docs/dyn/cloudresourcemanager_v1.folders.html b/docs/dyn/cloudresourcemanager_v1.folders.html
index 9b909ec..59da546 100644
--- a/docs/dyn/cloudresourcemanager_v1.folders.html
+++ b/docs/dyn/cloudresourcemanager_v1.folders.html
@@ -210,6 +210,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -382,7 +383,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -430,6 +430,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -602,7 +603,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -653,6 +653,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -825,7 +826,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -876,6 +876,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1048,7 +1049,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1117,8 +1117,10 @@
         "displayName": "A String", # The human readable name.
             #
             # Mutable.
-        "name": "A String", # Immutable value, required to globally be unique. For example,
-            # `constraints/serviceuser.services`
+        "description": "A String", # Detailed description of what this `Constraint` controls as well as how and
+            # where it is enforced.
+            #
+            # Mutable.
         "booleanConstraint": { # A `Constraint` that is either enforced or not. # Defines this constraint as being a BooleanConstraint.
             #
             # For example a constraint `constraints/compute.disableSerialPortAccess`.
@@ -1131,10 +1133,8 @@
           "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
               # that matches the value specified in this `Constraint`.
         },
-        "description": "A String", # Detailed description of what this `Constraint` controls as well as how and
-            # where it is enforced.
-            #
-            # Mutable.
+        "name": "A String", # Immutable value, required to globally be unique. For example,
+            # `constraints/serviceuser.services`
       },
     ],
   }</pre>
@@ -1191,6 +1191,7 @@
             # server, not specified by the caller, and represents the last time a call to
             # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
             # be ignored.
+        "version": 42, # Version of the `Policy`. Default version is 0;
         "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
             # `constraints/serviceuser.services`.
             #
@@ -1363,7 +1364,6 @@
               # The constraint at `projects/bar` is not enforced, because
               # `constraint_default` for the `Constraint` is `ALLOW`.
         },
-        "version": 42, # Version of the `Policy`. Default version is 0;
         "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
             # concurrency control.
             #
@@ -1418,6 +1418,7 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -1590,7 +1591,6 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -1623,6 +1623,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1795,7 +1796,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1834,6 +1834,7 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2006,7 +2007,6 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2039,6 +2039,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2211,7 +2212,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
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 aed61e1..c9aae73 100644
--- a/docs/dyn/cloudresourcemanager_v1.organizations.html
+++ b/docs/dyn/cloudresourcemanager_v1.organizations.html
@@ -90,7 +90,7 @@
   <code><a href="#getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for an Organization resource. May be empty</p>
 <p class="toc_element">
   <code><a href="#getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
@@ -117,7 +117,7 @@
   <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>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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">
   <code><a href="#setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
@@ -126,7 +126,7 @@
   <code><a href="#setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+  <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 Organization.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -266,6 +266,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -438,7 +439,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -486,6 +486,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -658,7 +659,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -678,7 +678,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Gets the access control policy for an Organization resource. May be empty
 if no such policy or resource exists. The `resource` field should be the
 organization's resource name, e.g. "organizations/123".
@@ -893,6 +893,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1065,7 +1066,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1116,6 +1116,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1288,7 +1289,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1357,8 +1357,10 @@
         "displayName": "A String", # The human readable name.
             #
             # Mutable.
-        "name": "A String", # Immutable value, required to globally be unique. For example,
-            # `constraints/serviceuser.services`
+        "description": "A String", # Detailed description of what this `Constraint` controls as well as how and
+            # where it is enforced.
+            #
+            # Mutable.
         "booleanConstraint": { # A `Constraint` that is either enforced or not. # Defines this constraint as being a BooleanConstraint.
             #
             # For example a constraint `constraints/compute.disableSerialPortAccess`.
@@ -1371,10 +1373,8 @@
           "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
               # that matches the value specified in this `Constraint`.
         },
-        "description": "A String", # Detailed description of what this `Constraint` controls as well as how and
-            # where it is enforced.
-            #
-            # Mutable.
+        "name": "A String", # Immutable value, required to globally be unique. For example,
+            # `constraints/serviceuser.services`
       },
     ],
   }</pre>
@@ -1431,6 +1431,7 @@
             # server, not specified by the caller, and represents the last time a call to
             # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
             # be ignored.
+        "version": 42, # Version of the `Policy`. Default version is 0;
         "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
             # `constraints/serviceuser.services`.
             #
@@ -1603,7 +1604,6 @@
               # The constraint at `projects/bar` is not enforced, because
               # `constraint_default` for the `Constraint` is `ALLOW`.
         },
-        "version": 42, # Version of the `Policy`. Default version is 0;
         "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
             # concurrency control.
             #
@@ -1728,7 +1728,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, 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
 name, e.g. "organizations/123".
@@ -2098,6 +2098,7 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2270,7 +2271,6 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2303,6 +2303,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2475,7 +2476,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -2514,6 +2514,7 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2686,7 +2687,6 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2719,6 +2719,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2891,7 +2892,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -2911,7 +2911,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified Organization.
 The `resource` field should be the organization's resource name,
 e.g. "organizations/123".
diff --git a/docs/dyn/cloudresourcemanager_v1.projects.html b/docs/dyn/cloudresourcemanager_v1.projects.html
index 661a574..4c490e5 100644
--- a/docs/dyn/cloudresourcemanager_v1.projects.html
+++ b/docs/dyn/cloudresourcemanager_v1.projects.html
@@ -84,13 +84,13 @@
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Request that a new Project be created. The result is an Operation which</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(projectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(projectId, x__xgafv=None)</a></code></p>
 <p class="firstline">Marks the Project identified by the specified</p>
 <p class="toc_element">
-  <code><a href="#get">get(projectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(projectId, x__xgafv=None)</a></code></p>
 <p class="firstline">Retrieves the Project identified by the specified</p>
 <p class="toc_element">
-  <code><a href="#getAncestry">getAncestry(projectId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#getAncestry">getAncestry(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a list of ancestors in the resource hierarchy for the Project</p>
 <p class="toc_element">
   <code><a href="#getEffectiveOrgPolicy">getEffectiveOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
@@ -99,7 +99,7 @@
   <code><a href="#getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns the IAM access control policy for the specified Project.</p>
 <p class="toc_element">
   <code><a href="#getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
@@ -126,7 +126,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="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the IAM access control policy for the specified Project. Replaces</p>
 <p class="toc_element">
   <code><a href="#setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
@@ -135,13 +135,13 @@
   <code><a href="#setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+  <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 Project.</p>
 <p class="toc_element">
-  <code><a href="#undelete">undelete(projectId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#undelete">undelete(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Restores the Project identified by the specified</p>
 <p class="toc_element">
-  <code><a href="#update">update(projectId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the attributes of the Project identified by the specified</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -230,66 +230,66 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
-    # 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.
-      # Allowed characters are: lowercase and uppercase letters, numbers,
-      # 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.
-      # 
-      # The only supported parent type is "organization". Once set, the parent
-      # cannot be modified. The `parent` can be set on creation or using the
-      # `UpdateProject` method; the end user must have the
-      # `resourcemanager.projects.create` permission on the parent.
-      # 
-      # 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 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: "organization"
-    "id": "A String", # Required field for the type-specific id. This should correspond to the id
-        # used in the type-specific API's.
-  },
-  "projectId": "A String", # The unique, user-assigned ID of the Project.
-      # It must be 6 to 30 lowercase letters, digits, or hyphens.
-      # It must start with a letter.
-      # Trailing hyphens are prohibited.
-      # 
-      # Example: <code>tokyo-rain-123</code>
-      # Read-only after creation.
-  "labels": { # The labels associated with this Project.
-      # 
-      # 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 256 labels can be associated with a given resource.
-      # 
-      # Clients should store labels in a representation such as JSON that does not
-      # depend on specific characters being disallowed.
-      # 
-      # Example: <code>"environment" : "dev"</code>
-      # Read-write.
-    "a_key": "A String",
-  },
-  "projectNumber": "A String", # The number uniquely identifying the project.
-      # 
-      # Example: <code>415104041262</code>
-      # Read-only.
-  "lifecycleState": "A String", # The Project lifecycle state.
-      # 
-      # Read-only.
-  "createTime": "A String", # Creation time.
-      # 
-      # Read-only.
-}
+      # 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.
+        # Allowed characters are: lowercase and uppercase letters, numbers,
+        # 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.
+        # 
+        # The only supported parent type is "organization". Once set, the parent
+        # cannot be modified. The `parent` can be set on creation or using the
+        # `UpdateProject` method; the end user must have the
+        # `resourcemanager.projects.create` permission on the parent.
+        # 
+        # 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 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: "organization"
+      "id": "A String", # Required field for the type-specific id. This should correspond to the id
+          # used in the type-specific API's.
+    },
+    "projectId": "A String", # The unique, user-assigned ID of the Project.
+        # It must be 6 to 30 lowercase letters, digits, or hyphens.
+        # It must start with a letter.
+        # Trailing hyphens are prohibited.
+        # 
+        # Example: <code>tokyo-rain-123</code>
+        # Read-only after creation.
+    "labels": { # The labels associated with this Project.
+        # 
+        # 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 256 labels can be associated with a given resource.
+        # 
+        # Clients should store labels in a representation such as JSON that does not
+        # depend on specific characters being disallowed.
+        # 
+        # Example: <code>"environment" : "dev"</code>
+        # Read-write.
+      "a_key": "A String",
+    },
+    "projectNumber": "A String", # The number uniquely identifying the project.
+        # 
+        # Example: <code>415104041262</code>
+        # Read-only.
+    "lifecycleState": "A String", # The Project lifecycle state.
+        # 
+        # Read-only.
+    "createTime": "A String", # Creation time.
+        # 
+        # Read-only.
+  }
 
   x__xgafv: string, V1 error format.
     Allowed values
@@ -307,22 +307,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:
@@ -386,11 +370,27 @@
         },
       ],
     },
+    "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(projectId=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(projectId, x__xgafv=None)</code>
   <pre>Marks the Project identified by the specified
 `project_id` (for example, `my-project-123`) for deletion.
 This method will only affect the Project if the following criteria are met:
@@ -441,7 +441,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(projectId, x__xgafv=None)</code>
   <pre>Retrieves the Project identified by the specified
 `project_id` (for example, `my-project-123`).
 
@@ -460,70 +460,70 @@
   An object of the form:
 
     { # A Project is a high-level Google Cloud Platform entity.  It is a
-      # 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.
-        # Allowed characters are: lowercase and uppercase letters, numbers,
-        # 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.
-        #
-        # The only supported parent type is "organization". Once set, the parent
-        # cannot be modified. The `parent` can be set on creation or using the
-        # `UpdateProject` method; the end user must have the
-        # `resourcemanager.projects.create` permission on the parent.
-        #
-        # 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 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: "organization"
-      "id": "A String", # Required field for the type-specific id. This should correspond to the id
-          # used in the type-specific API's.
-    },
-    "projectId": "A String", # The unique, user-assigned ID of the Project.
-        # It must be 6 to 30 lowercase letters, digits, or hyphens.
-        # It must start with a letter.
-        # Trailing hyphens are prohibited.
-        #
-        # Example: <code>tokyo-rain-123</code>
-        # Read-only after creation.
-    "labels": { # The labels associated with this Project.
-        #
-        # 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 256 labels can be associated with a given resource.
-        #
-        # Clients should store labels in a representation such as JSON that does not
-        # depend on specific characters being disallowed.
-        #
-        # Example: <code>"environment" : "dev"</code>
-        # Read-write.
-      "a_key": "A String",
-    },
-    "projectNumber": "A String", # The number uniquely identifying the project.
-        #
-        # Example: <code>415104041262</code>
-        # Read-only.
-    "lifecycleState": "A String", # The Project lifecycle state.
-        #
-        # Read-only.
-    "createTime": "A String", # Creation time.
-        #
-        # Read-only.
-  }</pre>
+        # 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.
+          # Allowed characters are: lowercase and uppercase letters, numbers,
+          # 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.
+          #
+          # The only supported parent type is "organization". Once set, the parent
+          # cannot be modified. The `parent` can be set on creation or using the
+          # `UpdateProject` method; the end user must have the
+          # `resourcemanager.projects.create` permission on the parent.
+          #
+          # 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 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: "organization"
+        "id": "A String", # Required field for the type-specific id. This should correspond to the id
+            # used in the type-specific API's.
+      },
+      "projectId": "A String", # The unique, user-assigned ID of the Project.
+          # It must be 6 to 30 lowercase letters, digits, or hyphens.
+          # It must start with a letter.
+          # Trailing hyphens are prohibited.
+          #
+          # Example: <code>tokyo-rain-123</code>
+          # Read-only after creation.
+      "labels": { # The labels associated with this Project.
+          #
+          # 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 256 labels can be associated with a given resource.
+          #
+          # Clients should store labels in a representation such as JSON that does not
+          # depend on specific characters being disallowed.
+          #
+          # Example: <code>"environment" : "dev"</code>
+          # Read-write.
+        "a_key": "A String",
+      },
+      "projectNumber": "A String", # The number uniquely identifying the project.
+          #
+          # Example: <code>415104041262</code>
+          # Read-only.
+      "lifecycleState": "A String", # The Project lifecycle state.
+          #
+          # Read-only.
+      "createTime": "A String", # Creation time.
+          #
+          # Read-only.
+    }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="getAncestry">getAncestry(projectId=None, body, x__xgafv=None)</code>
+    <code class="details" id="getAncestry">getAncestry(projectId, body, x__xgafv=None)</code>
   <pre>Gets a list of ancestors in the resource hierarchy for the Project
 identified by the specified `project_id` (for example, `my-project-123`).
 
@@ -597,6 +597,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -769,7 +770,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -817,6 +817,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -989,7 +990,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1009,7 +1009,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Returns the IAM access control policy for the specified Project.
 Permission is denied if the policy or the resource does not exist.
 
@@ -1223,6 +1223,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1395,7 +1396,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1446,6 +1446,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1618,7 +1619,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1703,66 +1703,66 @@
     "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, 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.
-            # Allowed characters are: lowercase and uppercase letters, numbers,
-            # 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.
-            #
-            # The only supported parent type is "organization". Once set, the parent
-            # cannot be modified. The `parent` can be set on creation or using the
-            # `UpdateProject` method; the end user must have the
-            # `resourcemanager.projects.create` permission on the parent.
-            #
-            # 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 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: "organization"
-          "id": "A String", # Required field for the type-specific id. This should correspond to the id
-              # used in the type-specific API's.
+            # 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.
+              # Allowed characters are: lowercase and uppercase letters, numbers,
+              # 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.
+              #
+              # The only supported parent type is "organization". Once set, the parent
+              # cannot be modified. The `parent` can be set on creation or using the
+              # `UpdateProject` method; the end user must have the
+              # `resourcemanager.projects.create` permission on the parent.
+              #
+              # 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 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: "organization"
+            "id": "A String", # Required field for the type-specific id. This should correspond to the id
+                # used in the type-specific API's.
+          },
+          "projectId": "A String", # The unique, user-assigned ID of the Project.
+              # It must be 6 to 30 lowercase letters, digits, or hyphens.
+              # It must start with a letter.
+              # Trailing hyphens are prohibited.
+              #
+              # Example: <code>tokyo-rain-123</code>
+              # Read-only after creation.
+          "labels": { # The labels associated with this Project.
+              #
+              # 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 256 labels can be associated with a given resource.
+              #
+              # Clients should store labels in a representation such as JSON that does not
+              # depend on specific characters being disallowed.
+              #
+              # Example: <code>"environment" : "dev"</code>
+              # Read-write.
+            "a_key": "A String",
+          },
+          "projectNumber": "A String", # The number uniquely identifying the project.
+              #
+              # Example: <code>415104041262</code>
+              # Read-only.
+          "lifecycleState": "A String", # The Project lifecycle state.
+              #
+              # Read-only.
+          "createTime": "A String", # Creation time.
+              #
+              # Read-only.
         },
-        "projectId": "A String", # The unique, user-assigned ID of the Project.
-            # It must be 6 to 30 lowercase letters, digits, or hyphens.
-            # It must start with a letter.
-            # Trailing hyphens are prohibited.
-            #
-            # Example: <code>tokyo-rain-123</code>
-            # Read-only after creation.
-        "labels": { # The labels associated with this Project.
-            #
-            # 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 256 labels can be associated with a given resource.
-            #
-            # Clients should store labels in a representation such as JSON that does not
-            # depend on specific characters being disallowed.
-            #
-            # Example: <code>"environment" : "dev"</code>
-            # Read-write.
-          "a_key": "A String",
-        },
-        "projectNumber": "A String", # The number uniquely identifying the project.
-            #
-            # Example: <code>415104041262</code>
-            # Read-only.
-        "lifecycleState": "A String", # The Project lifecycle state.
-            #
-            # Read-only.
-        "createTime": "A String", # Creation time.
-            #
-            # Read-only.
-      },
     ],
   }</pre>
 </div>
@@ -1817,8 +1817,10 @@
         "displayName": "A String", # The human readable name.
             #
             # Mutable.
-        "name": "A String", # Immutable value, required to globally be unique. For example,
-            # `constraints/serviceuser.services`
+        "description": "A String", # Detailed description of what this `Constraint` controls as well as how and
+            # where it is enforced.
+            #
+            # Mutable.
         "booleanConstraint": { # A `Constraint` that is either enforced or not. # Defines this constraint as being a BooleanConstraint.
             #
             # For example a constraint `constraints/compute.disableSerialPortAccess`.
@@ -1831,10 +1833,8 @@
           "suggestedValue": "A String", # Optional. The Google Cloud Console will try to default to a configuration
               # that matches the value specified in this `Constraint`.
         },
-        "description": "A String", # Detailed description of what this `Constraint` controls as well as how and
-            # where it is enforced.
-            #
-            # Mutable.
+        "name": "A String", # Immutable value, required to globally be unique. For example,
+            # `constraints/serviceuser.services`
       },
     ],
   }</pre>
@@ -1891,6 +1891,7 @@
             # server, not specified by the caller, and represents the last time a call to
             # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
             # be ignored.
+        "version": 42, # Version of the `Policy`. Default version is 0;
         "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
             # `constraints/serviceuser.services`.
             #
@@ -2063,7 +2064,6 @@
               # The constraint at `projects/bar` is not enforced, because
               # `constraint_default` for the `Constraint` is `ALLOW`.
         },
-        "version": 42, # Version of the `Policy`. Default version is 0;
         "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
             # concurrency control.
             #
@@ -2113,7 +2113,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the IAM access control policy for the specified Project. Replaces
 any existing policy.
 
@@ -2518,6 +2518,7 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2690,7 +2691,6 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2723,6 +2723,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2895,7 +2896,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -2934,6 +2934,7 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -3106,7 +3107,6 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -3139,6 +3139,7 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -3311,7 +3312,6 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -3331,7 +3331,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified Project.
 
 Args:
@@ -3366,7 +3366,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="undelete">undelete(projectId=None, body, x__xgafv=None)</code>
+    <code class="details" id="undelete">undelete(projectId, body, x__xgafv=None)</code>
   <pre>Restores the Project identified by the specified
 `project_id` (for example, `my-project-123`).
 You can only use this method for a Project that has a lifecycle state of
@@ -3407,7 +3407,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(projectId=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(projectId, body, x__xgafv=None)</code>
   <pre>Updates the attributes of the Project identified by the specified
 `project_id` (for example, `my-project-123`).
 
@@ -3421,92 +3421,22 @@
     The object takes the form of:
 
 { # A Project is a high-level Google Cloud Platform entity.  It is a
-    # 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.
-      # Allowed characters are: lowercase and uppercase letters, numbers,
-      # 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.
-      # 
-      # The only supported parent type is "organization". Once set, the parent
-      # cannot be modified. The `parent` can be set on creation or using the
-      # `UpdateProject` method; the end user must have the
-      # `resourcemanager.projects.create` permission on the parent.
-      # 
-      # 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 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: "organization"
-    "id": "A String", # Required field for the type-specific id. This should correspond to the id
-        # used in the type-specific API's.
-  },
-  "projectId": "A String", # The unique, user-assigned ID of the Project.
-      # It must be 6 to 30 lowercase letters, digits, or hyphens.
-      # It must start with a letter.
-      # Trailing hyphens are prohibited.
-      # 
-      # Example: <code>tokyo-rain-123</code>
-      # Read-only after creation.
-  "labels": { # The labels associated with this Project.
-      # 
-      # 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 256 labels can be associated with a given resource.
-      # 
-      # Clients should store labels in a representation such as JSON that does not
-      # depend on specific characters being disallowed.
-      # 
-      # Example: <code>"environment" : "dev"</code>
-      # Read-write.
-    "a_key": "A String",
-  },
-  "projectNumber": "A String", # The number uniquely identifying the project.
-      # 
-      # Example: <code>415104041262</code>
-      # Read-only.
-  "lifecycleState": "A String", # The Project lifecycle state.
-      # 
-      # Read-only.
-  "createTime": "A String", # Creation time.
-      # 
-      # Read-only.
-}
-
-  x__xgafv: string, V1 error format.
-    Allowed values
-      1 - v1 error format
-      2 - v2 error format
-
-Returns:
-  An object of the form:
-
-    { # A Project is a high-level Google Cloud Platform entity.  It is a
       # 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.
         # Allowed characters are: lowercase and uppercase letters, numbers,
         # 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.
-        #
+        # 
         # The only supported parent type is "organization". Once set, the parent
         # cannot be modified. The `parent` can be set on creation or using the
         # `UpdateProject` method; the end user must have the
         # `resourcemanager.projects.create` permission on the parent.
-        #
+        # 
         # 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 App Engine app,
@@ -3520,37 +3450,107 @@
         # It must be 6 to 30 lowercase letters, digits, or hyphens.
         # It must start with a letter.
         # Trailing hyphens are prohibited.
-        #
+        # 
         # Example: <code>tokyo-rain-123</code>
         # Read-only after creation.
     "labels": { # The labels associated with this Project.
-        #
+        # 
         # 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 256 labels can be associated with a given resource.
-        #
+        # 
         # Clients should store labels in a representation such as JSON that does not
         # depend on specific characters being disallowed.
-        #
+        # 
         # Example: <code>"environment" : "dev"</code>
         # Read-write.
       "a_key": "A String",
     },
     "projectNumber": "A String", # The number uniquely identifying the project.
-        #
+        # 
         # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
-        #
+        # 
         # Read-only.
     "createTime": "A String", # Creation time.
-        #
+        # 
         # Read-only.
-  }</pre>
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Project is a high-level Google Cloud Platform entity.  It is a
+        # 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.
+          # Allowed characters are: lowercase and uppercase letters, numbers,
+          # 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.
+          #
+          # The only supported parent type is "organization". Once set, the parent
+          # cannot be modified. The `parent` can be set on creation or using the
+          # `UpdateProject` method; the end user must have the
+          # `resourcemanager.projects.create` permission on the parent.
+          #
+          # 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 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: "organization"
+        "id": "A String", # Required field for the type-specific id. This should correspond to the id
+            # used in the type-specific API's.
+      },
+      "projectId": "A String", # The unique, user-assigned ID of the Project.
+          # It must be 6 to 30 lowercase letters, digits, or hyphens.
+          # It must start with a letter.
+          # Trailing hyphens are prohibited.
+          #
+          # Example: <code>tokyo-rain-123</code>
+          # Read-only after creation.
+      "labels": { # The labels associated with this Project.
+          #
+          # 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 256 labels can be associated with a given resource.
+          #
+          # Clients should store labels in a representation such as JSON that does not
+          # depend on specific characters being disallowed.
+          #
+          # Example: <code>"environment" : "dev"</code>
+          # Read-write.
+        "a_key": "A String",
+      },
+      "projectNumber": "A String", # The number uniquely identifying the project.
+          #
+          # Example: <code>415104041262</code>
+          # Read-only.
+      "lifecycleState": "A String", # The Project lifecycle state.
+          #
+          # Read-only.
+      "createTime": "A String", # Creation time.
+          #
+          # Read-only.
+    }</pre>
 </div>
 
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudresourcemanager_v1beta1.organizations.html b/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
index dec04fa..84e5158 100644
--- a/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
+++ b/docs/dyn/cloudresourcemanager_v1beta1.organizations.html
@@ -90,7 +90,7 @@
   <code><a href="#getEffectiveOrgPolicyV1">getEffectiveOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the access control policy for an Organization resource. May be empty</p>
 <p class="toc_element">
   <code><a href="#getOrgPolicy">getOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
@@ -117,7 +117,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="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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">
   <code><a href="#setOrgPolicy">setOrgPolicy(resource, body, x__xgafv=None)</a></code></p>
@@ -126,10 +126,10 @@
   <code><a href="#setOrgPolicyV1">setOrgPolicyV1(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the specified `Policy` on the resource. Creates a new `Policy` for</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+  <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 Organization.</p>
 <p class="toc_element">
-  <code><a href="#update">update(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates an Organization resource identified by the specified resource name.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -275,7 +275,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -305,8 +304,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -396,8 +395,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -448,6 +447,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -495,7 +495,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -525,8 +524,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -616,8 +615,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -668,6 +667,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -687,7 +687,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Gets the access control policy for an Organization resource. May be empty
 if no such policy or resource exists. The `resource` field should be the
 organization's resource name, e.g. "organizations/123".
@@ -773,6 +773,17 @@
         ],
       },
     ],
+    "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.
     "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
@@ -856,17 +867,6 @@
             # `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.
-    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
@@ -902,7 +902,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -932,8 +931,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -1023,8 +1022,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -1075,6 +1074,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1125,7 +1125,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -1155,8 +1154,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -1246,8 +1245,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -1298,6 +1297,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -1510,7 +1510,6 @@
             # server, not specified by the caller, and represents the last time a call to
             # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
             # be ignored.
-        "version": 42, # Version of the `Policy`. Default version is 0;
         "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
             # `constraints/serviceuser.services`.
             #
@@ -1540,8 +1539,8 @@
             # result in a failed request). If `all_values` is set to either `ALLOW` or
             # `DENY`, `allowed_values` and `denied_values` must be unset.
           "allValues": "A String", # The policy all_values state.
-          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-              # set for `denied_values` and `all_values` is set to
+          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+              # set for `allowed_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -1631,8 +1630,8 @@
               # that matches the value specified in this `Policy`. If `suggested_value`
               # is not set, it will inherit the value specified higher in the hierarchy,
               # unless `inherit_from_parent` is `false`.
-          "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-              # set for `allowed_values` and `all_values` is set to
+          "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+              # set for `denied_values` and `all_values` is set to
               # `ALL_VALUES_UNSPECIFIED`.
             "A String",
           ],
@@ -1683,6 +1682,7 @@
               # The constraint at `projects/bar` is not enforced, because
               # `constraint_default` for the `Constraint` is `ALLOW`.
         },
+        "version": 42, # Version of the `Policy`. Default version is 0;
         "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
             # concurrency control.
             #
@@ -1732,7 +1732,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, 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
 name, e.g. "organizations/123".
@@ -1811,6 +1811,17 @@
           ],
         },
       ],
+      "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.
       "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
@@ -1894,17 +1905,6 @@
               # `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.
-      "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, the
@@ -1985,6 +1985,17 @@
         ],
       },
     ],
+    "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.
     "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
@@ -2068,17 +2079,6 @@
             # `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.
-    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
@@ -2102,7 +2102,6 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2132,8 +2131,8 @@
           # result in a failed request). If `all_values` is set to either `ALLOW` or
           # `DENY`, `allowed_values` and `denied_values` must be unset.
         "allValues": "A String", # The policy all_values state.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
+        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+            # set for `allowed_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
@@ -2223,8 +2222,8 @@
             # that matches the value specified in this `Policy`. If `suggested_value`
             # is not set, it will inherit the value specified higher in the hierarchy,
             # unless `inherit_from_parent` is `false`.
-        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-            # set for `allowed_values` and `all_values` is set to
+        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+            # set for `denied_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
@@ -2275,6 +2274,7 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2307,7 +2307,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2337,8 +2336,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2428,8 +2427,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2480,6 +2479,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -2518,7 +2518,6 @@
           # server, not specified by the caller, and represents the last time a call to
           # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
           # be ignored.
-      "version": 42, # Version of the `Policy`. Default version is 0;
       "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
           # `constraints/serviceuser.services`.
           #
@@ -2548,8 +2547,8 @@
           # result in a failed request). If `all_values` is set to either `ALLOW` or
           # `DENY`, `allowed_values` and `denied_values` must be unset.
         "allValues": "A String", # The policy all_values state.
-        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-            # set for `denied_values` and `all_values` is set to
+        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+            # set for `allowed_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
@@ -2639,8 +2638,8 @@
             # that matches the value specified in this `Policy`. If `suggested_value`
             # is not set, it will inherit the value specified higher in the hierarchy,
             # unless `inherit_from_parent` is `false`.
-        "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-            # set for `allowed_values` and `all_values` is set to
+        "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+            # set for `denied_values` and `all_values` is set to
             # `ALL_VALUES_UNSPECIFIED`.
           "A String",
         ],
@@ -2691,6 +2690,7 @@
             # The constraint at `projects/bar` is not enforced, because
             # `constraint_default` for the `Constraint` is `ALLOW`.
       },
+      "version": 42, # Version of the `Policy`. Default version is 0;
       "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
           # concurrency control.
           #
@@ -2723,7 +2723,6 @@
         # server, not specified by the caller, and represents the last time a call to
         # `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
         # be ignored.
-    "version": 42, # Version of the `Policy`. Default version is 0;
     "constraint": "A String", # The name of the `Constraint` the `Policy` is configuring, for example,
         # `constraints/serviceuser.services`.
         #
@@ -2753,8 +2752,8 @@
         # result in a failed request). If `all_values` is set to either `ALLOW` or
         # `DENY`, `allowed_values` and `denied_values` must be unset.
       "allValues": "A String", # The policy all_values state.
-      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
-          # set for `denied_values` and `all_values` is set to
+      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
+          # set for `allowed_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2844,8 +2843,8 @@
           # that matches the value specified in this `Policy`. If `suggested_value`
           # is not set, it will inherit the value specified higher in the hierarchy,
           # unless `inherit_from_parent` is `false`.
-      "deniedValues": [ # List of values denied at this resource. Can only be set if no values are
-          # set for `allowed_values` and `all_values` is set to
+      "allowedValues": [ # List of values allowed  at this resource. an only be set if no values are
+          # set for `denied_values` and `all_values` is set to
           # `ALL_VALUES_UNSPECIFIED`.
         "A String",
       ],
@@ -2896,6 +2895,7 @@
           # The constraint at `projects/bar` is not enforced, because
           # `constraint_default` for the `Constraint` is `ALLOW`.
     },
+    "version": 42, # Version of the `Policy`. Default version is 0;
     "etag": "A String", # An opaque tag indicating the current version of the `Policy`, used for
         # concurrency control.
         #
@@ -2915,7 +2915,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified Organization.
 The `resource` field should be the organization's resource name,
 e.g. "organizations/123".
@@ -2952,7 +2952,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(name, body, x__xgafv=None)</code>
   <pre>Updates an Organization resource identified by the specified resource name.
 
 Args:
diff --git a/docs/dyn/cloudresourcemanager_v1beta1.projects.html b/docs/dyn/cloudresourcemanager_v1beta1.projects.html
index 95d1923..e6f0051 100644
--- a/docs/dyn/cloudresourcemanager_v1beta1.projects.html
+++ b/docs/dyn/cloudresourcemanager_v1beta1.projects.html
@@ -78,16 +78,16 @@
   <code><a href="#create">create(body, useLegacyStack=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a Project resource.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(projectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(projectId, x__xgafv=None)</a></code></p>
 <p class="firstline">Marks the Project identified by the specified</p>
 <p class="toc_element">
-  <code><a href="#get">get(projectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(projectId, x__xgafv=None)</a></code></p>
 <p class="firstline">Retrieves the Project identified by the specified</p>
 <p class="toc_element">
-  <code><a href="#getAncestry">getAncestry(projectId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#getAncestry">getAncestry(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a list of ancestors in the resource hierarchy for the Project</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns the IAM access control policy for the specified Project.</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
@@ -96,16 +96,16 @@
   <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>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the IAM access control policy for the specified Project. Replaces</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+  <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 Project.</p>
 <p class="toc_element">
-  <code><a href="#undelete">undelete(projectId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#undelete">undelete(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Restores the Project identified by the specified</p>
 <p class="toc_element">
-  <code><a href="#update">update(projectId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(projectId, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the attributes of the Project identified by the specified</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -173,15 +173,15 @@
       # Read-write.
     "a_key": "A String",
   },
-  "projectNumber": "A String", # The number uniquely identifying the project.
+  "createTime": "A String", # Creation time.
       # 
-      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
 }
 
@@ -244,21 +244,21 @@
         # Read-write.
       "a_key": "A String",
     },
-    "projectNumber": "A String", # The number uniquely identifying the project.
+    "createTime": "A String", # Creation time.
         #
-        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(projectId=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(projectId, x__xgafv=None)</code>
   <pre>Marks the Project identified by the specified
 `project_id` (for example, `my-project-123`) for deletion.
 This method will only affect the Project if the following criteria are met:
@@ -309,7 +309,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(projectId, x__xgafv=None)</code>
   <pre>Retrieves the Project identified by the specified
 `project_id` (for example, `my-project-123`).
 
@@ -377,21 +377,21 @@
         # Read-write.
       "a_key": "A String",
     },
-    "projectNumber": "A String", # The number uniquely identifying the project.
+    "createTime": "A String", # Creation time.
         #
-        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="getAncestry">getAncestry(projectId=None, body, x__xgafv=None)</code>
+    <code class="details" id="getAncestry">getAncestry(projectId, body, x__xgafv=None)</code>
   <pre>Gets a list of ancestors in the resource hierarchy for the Project
 identified by the specified `project_id` (for example, `my-project-123`).
 
@@ -437,7 +437,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Returns the IAM access control policy for the specified Project.
 Permission is denied if the policy or the resource does not exist.
 
@@ -522,6 +522,17 @@
         ],
       },
     ],
+    "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.
     "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
@@ -605,17 +616,6 @@
             # `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.
-    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
@@ -733,15 +733,15 @@
             # Read-write.
           "a_key": "A String",
         },
-        "projectNumber": "A String", # The number uniquely identifying the project.
+        "createTime": "A String", # Creation time.
             #
-            # Example: <code>415104041262</code>
             # Read-only.
         "lifecycleState": "A String", # The Project lifecycle state.
             #
             # Read-only.
-        "createTime": "A String", # Creation time.
+        "projectNumber": "A String", # The number uniquely identifying the project.
             #
+            # Example: <code>415104041262</code>
             # Read-only.
       },
     ],
@@ -763,7 +763,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the IAM access control policy for the specified Project. Replaces
 any existing policy.
 
@@ -876,6 +876,17 @@
           ],
         },
       ],
+      "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.
       "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
@@ -959,17 +970,6 @@
               # `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.
-      "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, the
@@ -1050,6 +1050,17 @@
         ],
       },
     ],
+    "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.
     "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
@@ -1133,22 +1144,11 @@
             # `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.
-    "version": 42, # Version of the `Policy`. The default version is 0.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
   <pre>Returns permissions that a caller has on the specified Project.
 
 Args:
@@ -1183,7 +1183,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="undelete">undelete(projectId=None, body, x__xgafv=None)</code>
+    <code class="details" id="undelete">undelete(projectId, body, x__xgafv=None)</code>
   <pre>Restores the Project identified by the specified
 `project_id` (for example, `my-project-123`).
 You can only use this method for a Project that has a lifecycle state of
@@ -1224,7 +1224,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(projectId=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(projectId, body, x__xgafv=None)</code>
   <pre>Updates the attributes of the Project identified by the specified
 `project_id` (for example, `my-project-123`).
 
@@ -1287,15 +1287,15 @@
       # Read-write.
     "a_key": "A String",
   },
-  "projectNumber": "A String", # The number uniquely identifying the project.
+  "createTime": "A String", # Creation time.
       # 
-      # Example: <code>415104041262</code>
       # Read-only.
   "lifecycleState": "A String", # The Project lifecycle state.
       # 
       # Read-only.
-  "createTime": "A String", # Creation time.
+  "projectNumber": "A String", # The number uniquely identifying the project.
       # 
+      # Example: <code>415104041262</code>
       # Read-only.
 }
 
@@ -1357,15 +1357,15 @@
         # Read-write.
       "a_key": "A String",
     },
-    "projectNumber": "A String", # The number uniquely identifying the project.
+    "createTime": "A String", # Creation time.
         #
-        # Example: <code>415104041262</code>
         # Read-only.
     "lifecycleState": "A String", # The Project lifecycle state.
         #
         # Read-only.
-    "createTime": "A String", # Creation time.
+    "projectNumber": "A String", # The number uniquely identifying the project.
         #
+        # Example: <code>415104041262</code>
         # Read-only.
   }</pre>
 </div>
diff --git a/docs/dyn/dataflow_v1b3.projects.html b/docs/dyn/dataflow_v1b3.projects.html
index 6ec61ab..a723b9e 100644
--- a/docs/dyn/dataflow_v1b3.projects.html
+++ b/docs/dyn/dataflow_v1b3.projects.html
@@ -109,10 +109,6 @@
             #
             # The VM should be identified by the labels attached to the WorkerMessage that
             # this health ping belongs to.
-          "vmStartupTime": "A String", # The time the VM was booted.
-          "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.
           "pods": [ # The pods running on the worker. See:
               # http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod
               #
@@ -122,6 +118,10 @@
               "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.
+          "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.
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.html b/docs/dyn/dataflow_v1b3.projects.jobs.html
index 75c7d0c..cf4b668 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.html
@@ -156,12 +156,13 @@
         # 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",
     },
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "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.
@@ -215,6 +216,49 @@
             # 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.
@@ -291,16 +335,32 @@
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
           },
-          "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.
+          "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.
+              "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.
+          },
           "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.
@@ -326,78 +386,13 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "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.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "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).
-          "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
+          "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.
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "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.
-          },
-          "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.
-          "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-          },
         },
       ],
     },
-    "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.
     "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
@@ -413,6 +408,9 @@
           ],
           "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
@@ -420,7 +418,6 @@
                   # 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.
-              "durationValue": "A String", # Contains value if the data is of duration 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
@@ -431,9 +428,7 @@
               "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.
-              "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.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "int64Value": "A String", # Contains value if the data is of int64 type.
             },
           ],
@@ -445,6 +440,9 @@
       ],
       "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
@@ -452,7 +450,6 @@
               # 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.
-          "durationValue": "A String", # Contains value if the data is of duration 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
@@ -463,9 +460,7 @@
           "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.
-          "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.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "int64Value": "A String", # Contains value if the data is of int64 type.
         },
       ],
@@ -487,19 +482,19 @@
           "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
@@ -541,16 +536,26 @@
           # 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.
-        "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.
         "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.
       },
     ],
-    "location": "A String", # The location that contains this 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.
@@ -570,17 +575,12 @@
         # 
         # This field is set by the Cloud 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.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
         # 
-        # 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.
+        # 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.
@@ -646,12 +646,13 @@
           # 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",
       },
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "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.
@@ -705,6 +706,49 @@
               # 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.
@@ -781,16 +825,32 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "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.
+            "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.
+                "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.
+            },
             "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.
@@ -816,78 +876,13 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "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.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "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).
-            "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
+            "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.
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "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.
-            },
-            "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.
-            "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-            },
           },
         ],
       },
-      "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.
       "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
@@ -903,6 +898,9 @@
             ],
             "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
@@ -910,7 +908,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -921,9 +918,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -935,6 +930,9 @@
         ],
         "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
@@ -942,7 +940,6 @@
                 # 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.
-            "durationValue": "A String", # Contains value if the data is of duration 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
@@ -953,9 +950,7 @@
             "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.
-            "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.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "int64Value": "A String", # Contains value if the data is of int64 type.
           },
         ],
@@ -977,19 +972,19 @@
             "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
@@ -1031,16 +1026,26 @@
             # 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.
-          "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.
           "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.
         },
       ],
-      "location": "A String", # The location that contains this 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.
@@ -1060,17 +1065,12 @@
           #
           # This field is set by the Cloud 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.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
           #
-          # 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.
+          # 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.
@@ -1143,12 +1143,13 @@
           # 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",
       },
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "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.
@@ -1202,6 +1203,49 @@
               # 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.
@@ -1278,16 +1322,32 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "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.
+            "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.
+                "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.
+            },
             "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.
@@ -1313,78 +1373,13 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "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.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "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).
-            "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
+            "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.
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "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.
-            },
-            "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.
-            "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-            },
           },
         ],
       },
-      "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.
       "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
@@ -1400,6 +1395,9 @@
             ],
             "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
@@ -1407,7 +1405,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -1418,9 +1415,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -1432,6 +1427,9 @@
         ],
         "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
@@ -1439,7 +1437,6 @@
                 # 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.
-            "durationValue": "A String", # Contains value if the data is of duration 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
@@ -1450,9 +1447,7 @@
             "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.
-            "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.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "int64Value": "A String", # Contains value if the data is of int64 type.
           },
         ],
@@ -1474,19 +1469,19 @@
             "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
@@ -1528,16 +1523,26 @@
             # 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.
-          "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.
           "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.
         },
       ],
-      "location": "A String", # The location that contains this 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.
@@ -1557,17 +1562,12 @@
           #
           # This field is set by the Cloud 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.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
           #
-          # 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.
+          # 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.
@@ -1725,12 +1725,13 @@
               # 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",
           },
-          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-              # Cloud Dataflow service.
           "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.
@@ -1784,6 +1785,49 @@
                   # 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.
@@ -1860,16 +1904,32 @@
                       #   storage.googleapis.com/{bucket}/{object}
                       #   bucket.storage.googleapis.com/{object}
                 },
-                "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.
+                "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.
+                    "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.
+                },
                 "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.
@@ -1895,78 +1955,13 @@
                         # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                   },
                 ],
-                "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.
-                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                    # Compute Engine API.
-                "ipConfiguration": "A String", # Configuration for VM IPs.
-                "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).
-                "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
+                "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.
-                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                    # the form "regions/REGION/subnetworks/SUBNETWORK".
-                "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.
-                },
-                "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.
-                "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-                },
               },
             ],
           },
-          "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.
           "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
@@ -1982,6 +1977,9 @@
                 ],
                 "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
@@ -1989,7 +1987,6 @@
                         # 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.
-                    "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2000,9 +1997,7 @@
                     "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.
-                    "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.
+                    "durationValue": "A String", # Contains value if the data is of duration type.
                     "int64Value": "A String", # Contains value if the data is of int64 type.
                   },
                 ],
@@ -2014,6 +2009,9 @@
             ],
             "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
@@ -2021,7 +2019,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2032,9 +2029,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -2056,19 +2051,19 @@
                 "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.
-                    "sizeBytes": "A String", # Size of the source, if measurable.
-                    "name": "A String", # Dataflow service generated name for this source.
                     "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.
-                    "sizeBytes": "A String", # Size of the source, if measurable.
-                    "name": "A String", # Dataflow service generated name for this source.
                     "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.
@@ -2110,16 +2105,26 @@
                 # 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.
-              "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.
               "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.
             },
           ],
-          "location": "A String", # The location that contains this 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.
@@ -2139,17 +2144,12 @@
               #
               # This field is set by the Cloud 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.
+          "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+              # of the job it replaced.
               #
-              # 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.
+              # 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.
@@ -2236,12 +2236,13 @@
         # 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",
     },
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "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.
@@ -2295,6 +2296,49 @@
             # 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.
@@ -2371,16 +2415,32 @@
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
           },
-          "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.
+          "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.
+              "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.
+          },
           "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.
@@ -2406,78 +2466,13 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "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.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "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).
-          "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
+          "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.
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "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.
-          },
-          "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.
-          "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-          },
         },
       ],
     },
-    "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.
     "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
@@ -2493,6 +2488,9 @@
           ],
           "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
@@ -2500,7 +2498,6 @@
                   # 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.
-              "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2511,9 +2508,7 @@
               "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.
-              "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.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "int64Value": "A String", # Contains value if the data is of int64 type.
             },
           ],
@@ -2525,6 +2520,9 @@
       ],
       "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
@@ -2532,7 +2530,6 @@
               # 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.
-          "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2543,9 +2540,7 @@
           "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.
-          "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.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "int64Value": "A String", # Contains value if the data is of int64 type.
         },
       ],
@@ -2567,19 +2562,19 @@
           "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
@@ -2621,16 +2616,26 @@
           # 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.
-        "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.
         "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.
       },
     ],
-    "location": "A String", # The location that contains this 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.
@@ -2650,17 +2655,12 @@
         # 
         # This field is set by the Cloud 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.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
         # 
-        # 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.
+        # 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.
@@ -2724,12 +2724,13 @@
           # 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",
       },
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "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.
@@ -2783,6 +2784,49 @@
               # 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.
@@ -2859,16 +2903,32 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "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.
+            "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.
+                "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.
+            },
             "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.
@@ -2894,78 +2954,13 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "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.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "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).
-            "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
+            "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.
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "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.
-            },
-            "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.
-            "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-            },
           },
         ],
       },
-      "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.
       "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
@@ -2981,6 +2976,9 @@
             ],
             "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
@@ -2988,7 +2986,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2999,9 +2996,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -3013,6 +3008,9 @@
         ],
         "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
@@ -3020,7 +3018,6 @@
                 # 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.
-            "durationValue": "A String", # Contains value if the data is of duration 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
@@ -3031,9 +3028,7 @@
             "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.
-            "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.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "int64Value": "A String", # Contains value if the data is of int64 type.
           },
         ],
@@ -3055,19 +3050,19 @@
             "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
@@ -3109,16 +3104,26 @@
             # 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.
-          "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.
           "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.
         },
       ],
-      "location": "A String", # The location that contains this 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.
@@ -3138,17 +3143,12 @@
           #
           # This field is set by the Cloud 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.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
           #
-          # 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.
+          # 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.
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html b/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
index debf158..c62f654 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.workItems.html
@@ -118,7 +118,7 @@
     "workItems": [ # A list of the leased WorkItems.
       { # WorkItem represents basic information about a WorkItem to be executed
           # in the cloud.
-        "reportStatusInterval": "A String", # Recommended reporting interval.
+        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "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.
@@ -645,13 +645,26 @@
           ],
         },
         "jobId": "A String", # Identifies the workflow job this WorkItem belongs to.
-        "configuration": "A String", # Work item-specific configuration as an opaque blob.
+        "reportStatusInterval": "A String", # Recommended reporting interval.
         "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.
           "drain": True or False, # The user has requested drain.
           "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.
@@ -687,24 +700,6 @@
                     },
                   },
                 ],
-                "systemStageName": "A String", # The system stage name.
-                "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.
-                    "deprecatedPersistentDirectory": "A String", # DEPRECATED. The location of the persistent state for this range, as a
-                        # persistent directory in the worker local filesystem.
-                    "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.
-                    "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.
                 "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.
@@ -738,6 +733,24 @@
                     },
                   },
                 ],
+                "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.
+                    "deprecatedPersistentDirectory": "A String", # DEPRECATED. The location of the persistent state for this range, as a
+                        # persistent directory in the worker local filesystem.
+                    "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.
+                    "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.
+                "systemStageName": "A String", # The system stage name.
                 "userStageName": "A String", # The user stage name.
                 "stateFamilies": [ # The state family values.
                   { # State family configuration.
@@ -747,23 +760,10 @@
                 ],
               },
             ],
-            "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",
-                ],
-              },
-            ],
-            "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
             "userStageToComputationNameMap": { # Maps user stage names to stable computation names.
               "a_key": "A String",
             },
-            "persistentStateVersion": 42, # Version number for persistent state.
+            "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.
@@ -1081,13 +1081,13 @@
               # 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/
-            "name": "A String", # The name of the package.
           },
         ],
         "shellTask": { # A task which consists of a shell command for the worker to execute. # Additional information for ShellTask WorkItems.
@@ -1409,7 +1409,8 @@
           "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.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
           "key": "A String", # Position is a string key, ordered lexicographically.
           "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
@@ -1417,8 +1418,7 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
         },
         "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 # DEPRECATED
@@ -1658,9 +1658,8 @@
         "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.
-          "primary": { # Specification of one of the bundles produced as a result of splitting # Primary part (continued to be processed by worker).
+          "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.
-              # 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.
@@ -1719,8 +1718,9 @@
               },
             },
           },
-          "residual": { # Specification of one of the bundles produced as a result of splitting # Residual part (returned to the pool of work).
+          "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.
@@ -1800,7 +1800,6 @@
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
             },
-            "boolean": True or False, # Boolean value for And, Or.
             "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
@@ -1825,7 +1824,7 @@
             "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.
-            "internal": "", # Value for internally-defined counters used by the Dataflow service.
+            "boolean": True or False, # Boolean value for And, Or.
             "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.
@@ -1849,6 +1848,7 @@
                 "description": "A String", # Human-readable description of the counter semantics.
               },
             },
+            "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 # Integer value for Sum, Max, Min.
                 # encoded in JSON.
               "lowBits": 42, # The low order bits: n & 0xffffffff.
@@ -1896,7 +1896,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -1904,8 +1905,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
@@ -1966,7 +1966,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -1974,8 +1975,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
           "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
@@ -2054,7 +2054,8 @@
           "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.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
           "key": "A String", # Position is a string key, ordered lexicographically.
           "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
@@ -2062,17 +2063,16 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
         },
+        "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
@@ -2096,7 +2096,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -2104,8 +2105,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
         },
         "suggestedStopPoint": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of split_request.
@@ -2115,7 +2115,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -2123,8 +2124,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
           "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 e7ad6bb..211911c 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
@@ -152,12 +152,13 @@
         # 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",
     },
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "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.
@@ -211,6 +212,49 @@
             # 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.
@@ -287,16 +331,32 @@
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
           },
-          "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.
+          "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.
+              "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.
+          },
           "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.
@@ -322,78 +382,13 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "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.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "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).
-          "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
+          "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.
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "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.
-          },
-          "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.
-          "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-          },
         },
       ],
     },
-    "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.
     "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
@@ -409,6 +404,9 @@
           ],
           "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
@@ -416,7 +414,6 @@
                   # 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.
-              "durationValue": "A String", # Contains value if the data is of duration 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
@@ -427,9 +424,7 @@
               "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.
-              "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.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "int64Value": "A String", # Contains value if the data is of int64 type.
             },
           ],
@@ -441,6 +436,9 @@
       ],
       "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
@@ -448,7 +446,6 @@
               # 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.
-          "durationValue": "A String", # Contains value if the data is of duration 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
@@ -459,9 +456,7 @@
           "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.
-          "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.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "int64Value": "A String", # Contains value if the data is of int64 type.
         },
       ],
@@ -483,19 +478,19 @@
           "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
@@ -537,16 +532,26 @@
           # 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.
-        "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.
         "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.
       },
     ],
-    "location": "A String", # The location that contains this 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.
@@ -566,17 +571,12 @@
         # 
         # This field is set by the Cloud 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.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
         # 
-        # 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.
+        # 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.
@@ -641,12 +641,13 @@
           # 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",
       },
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "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.
@@ -700,6 +701,49 @@
               # 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.
@@ -776,16 +820,32 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "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.
+            "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.
+                "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.
+            },
             "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.
@@ -811,78 +871,13 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "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.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "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).
-            "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
+            "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.
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "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.
-            },
-            "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.
-            "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-            },
           },
         ],
       },
-      "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.
       "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
@@ -898,6 +893,9 @@
             ],
             "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
@@ -905,7 +903,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -916,9 +913,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -930,6 +925,9 @@
         ],
         "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
@@ -937,7 +935,6 @@
                 # 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.
-            "durationValue": "A String", # Contains value if the data is of duration 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
@@ -948,9 +945,7 @@
             "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.
-            "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.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "int64Value": "A String", # Contains value if the data is of int64 type.
           },
         ],
@@ -972,19 +967,19 @@
             "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
@@ -1026,16 +1021,26 @@
             # 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.
-          "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.
           "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.
         },
       ],
-      "location": "A String", # The location that contains this 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.
@@ -1055,17 +1060,12 @@
           #
           # This field is set by the Cloud 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.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
           #
-          # 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.
+          # 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.
@@ -1138,12 +1138,13 @@
           # 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",
       },
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "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.
@@ -1197,6 +1198,49 @@
               # 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.
@@ -1273,16 +1317,32 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "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.
+            "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.
+                "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.
+            },
             "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.
@@ -1308,78 +1368,13 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "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.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "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).
-            "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
+            "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.
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "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.
-            },
-            "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.
-            "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-            },
           },
         ],
       },
-      "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.
       "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
@@ -1395,6 +1390,9 @@
             ],
             "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
@@ -1402,7 +1400,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -1413,9 +1410,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -1427,6 +1422,9 @@
         ],
         "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
@@ -1434,7 +1432,6 @@
                 # 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.
-            "durationValue": "A String", # Contains value if the data is of duration 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
@@ -1445,9 +1442,7 @@
             "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.
-            "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.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "int64Value": "A String", # Contains value if the data is of int64 type.
           },
         ],
@@ -1469,19 +1464,19 @@
             "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
@@ -1523,16 +1518,26 @@
             # 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.
-          "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.
           "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.
         },
       ],
-      "location": "A String", # The location that contains this 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.
@@ -1552,17 +1557,12 @@
           #
           # This field is set by the Cloud 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.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
           #
-          # 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.
+          # 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.
@@ -1720,12 +1720,13 @@
               # 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",
           },
-          "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-              # Cloud Dataflow service.
           "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.
@@ -1779,6 +1780,49 @@
                   # 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.
@@ -1855,16 +1899,32 @@
                       #   storage.googleapis.com/{bucket}/{object}
                       #   bucket.storage.googleapis.com/{object}
                 },
-                "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.
+                "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.
+                    "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.
+                },
                 "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.
@@ -1890,78 +1950,13 @@
                         # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                   },
                 ],
-                "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.
-                "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                    # Compute Engine API.
-                "ipConfiguration": "A String", # Configuration for VM IPs.
-                "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).
-                "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
+                "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.
-                "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                    # the form "regions/REGION/subnetworks/SUBNETWORK".
-                "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.
-                },
-                "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.
-                "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-                },
               },
             ],
           },
-          "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.
           "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
@@ -1977,6 +1972,9 @@
                 ],
                 "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
@@ -1984,7 +1982,6 @@
                         # 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.
-                    "durationValue": "A String", # Contains value if the data is of duration 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
@@ -1995,9 +1992,7 @@
                     "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.
-                    "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.
+                    "durationValue": "A String", # Contains value if the data is of duration type.
                     "int64Value": "A String", # Contains value if the data is of int64 type.
                   },
                 ],
@@ -2009,6 +2004,9 @@
             ],
             "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
@@ -2016,7 +2014,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2027,9 +2024,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -2051,19 +2046,19 @@
                 "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.
-                    "sizeBytes": "A String", # Size of the source, if measurable.
-                    "name": "A String", # Dataflow service generated name for this source.
                     "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.
-                    "sizeBytes": "A String", # Size of the source, if measurable.
-                    "name": "A String", # Dataflow service generated name for this source.
                     "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.
@@ -2105,16 +2100,26 @@
                 # 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.
-              "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.
               "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.
             },
           ],
-          "location": "A String", # The location that contains this 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.
@@ -2134,17 +2139,12 @@
               #
               # This field is set by the Cloud 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.
+          "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+              # of the job it replaced.
               #
-              # 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.
+              # 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.
@@ -2232,12 +2232,13 @@
         # 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",
     },
-    "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-        # Cloud Dataflow service.
     "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.
@@ -2291,6 +2292,49 @@
             # 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.
@@ -2367,16 +2411,32 @@
                 #   storage.googleapis.com/{bucket}/{object}
                 #   bucket.storage.googleapis.com/{object}
           },
-          "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.
+          "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.
+              "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.
+          },
           "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.
@@ -2402,78 +2462,13 @@
                   # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
             },
           ],
-          "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.
-          "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-              # Compute Engine API.
-          "ipConfiguration": "A String", # Configuration for VM IPs.
-          "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).
-          "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
+          "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.
-          "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-              # the form "regions/REGION/subnetworks/SUBNETWORK".
-          "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.
-          },
-          "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.
-          "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-          },
         },
       ],
     },
-    "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.
     "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
@@ -2489,6 +2484,9 @@
           ],
           "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
@@ -2496,7 +2494,6 @@
                   # 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.
-              "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2507,9 +2504,7 @@
               "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.
-              "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.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "int64Value": "A String", # Contains value if the data is of int64 type.
             },
           ],
@@ -2521,6 +2516,9 @@
       ],
       "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
@@ -2528,7 +2526,6 @@
               # 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.
-          "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2539,9 +2536,7 @@
           "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.
-          "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.
+          "durationValue": "A String", # Contains value if the data is of duration type.
           "int64Value": "A String", # Contains value if the data is of int64 type.
         },
       ],
@@ -2563,19 +2558,19 @@
           "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
-              "sizeBytes": "A String", # Size of the source, if measurable.
-              "name": "A String", # Dataflow service generated name for this source.
               "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.
@@ -2617,16 +2612,26 @@
           # 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.
-        "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.
         "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.
       },
     ],
-    "location": "A String", # The location that contains this 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.
@@ -2646,17 +2651,12 @@
         # 
         # This field is set by the Cloud 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.
+    "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+        # of the job it replaced.
         # 
-        # 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.
+        # 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.
@@ -2719,12 +2719,13 @@
           # 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",
       },
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "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.
@@ -2778,6 +2779,49 @@
               # 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.
@@ -2854,16 +2898,32 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "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.
+            "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.
+                "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.
+            },
             "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.
@@ -2889,78 +2949,13 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "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.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "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).
-            "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
+            "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.
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "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.
-            },
-            "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.
-            "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-            },
           },
         ],
       },
-      "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.
       "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
@@ -2976,6 +2971,9 @@
             ],
             "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
@@ -2983,7 +2981,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -2994,9 +2991,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -3008,6 +3003,9 @@
         ],
         "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
@@ -3015,7 +3013,6 @@
                 # 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.
-            "durationValue": "A String", # Contains value if the data is of duration 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
@@ -3026,9 +3023,7 @@
             "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.
-            "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.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "int64Value": "A String", # Contains value if the data is of int64 type.
           },
         ],
@@ -3050,19 +3045,19 @@
             "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
@@ -3104,16 +3099,26 @@
             # 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.
-          "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.
           "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.
         },
       ],
-      "location": "A String", # The location that contains this 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.
@@ -3133,17 +3138,12 @@
           #
           # This field is set by the Cloud 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.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
           #
-          # 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.
+          # 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.
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
index 031c10c..972c110 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.workItems.html
@@ -119,7 +119,7 @@
     "workItems": [ # A list of the leased WorkItems.
       { # WorkItem represents basic information about a WorkItem to be executed
           # in the cloud.
-        "reportStatusInterval": "A String", # Recommended reporting interval.
+        "configuration": "A String", # Work item-specific configuration as an opaque blob.
         "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.
@@ -646,13 +646,26 @@
           ],
         },
         "jobId": "A String", # Identifies the workflow job this WorkItem belongs to.
-        "configuration": "A String", # Work item-specific configuration as an opaque blob.
+        "reportStatusInterval": "A String", # Recommended reporting interval.
         "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.
           "drain": True or False, # The user has requested drain.
           "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.
@@ -688,24 +701,6 @@
                     },
                   },
                 ],
-                "systemStageName": "A String", # The system stage name.
-                "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.
-                    "deprecatedPersistentDirectory": "A String", # DEPRECATED. The location of the persistent state for this range, as a
-                        # persistent directory in the worker local filesystem.
-                    "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.
-                    "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.
                 "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.
@@ -739,6 +734,24 @@
                     },
                   },
                 ],
+                "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.
+                    "deprecatedPersistentDirectory": "A String", # DEPRECATED. The location of the persistent state for this range, as a
+                        # persistent directory in the worker local filesystem.
+                    "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.
+                    "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.
+                "systemStageName": "A String", # The system stage name.
                 "userStageName": "A String", # The user stage name.
                 "stateFamilies": [ # The state family values.
                   { # State family configuration.
@@ -748,23 +761,10 @@
                 ],
               },
             ],
-            "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",
-                ],
-              },
-            ],
-            "forwardingKeyBits": 42, # The size (in bits) of keys that will be assigned to source messages.
             "userStageToComputationNameMap": { # Maps user stage names to stable computation names.
               "a_key": "A String",
             },
-            "persistentStateVersion": 42, # Version number for persistent state.
+            "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.
@@ -1082,13 +1082,13 @@
               # 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/
-            "name": "A String", # The name of the package.
           },
         ],
         "shellTask": { # A task which consists of a shell command for the worker to execute. # Additional information for ShellTask WorkItems.
@@ -1411,7 +1411,8 @@
           "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.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
           "key": "A String", # Position is a string key, ordered lexicographically.
           "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
@@ -1419,8 +1420,7 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
         },
         "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 # DEPRECATED
@@ -1660,9 +1660,8 @@
         "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.
-          "primary": { # Specification of one of the bundles produced as a result of splitting # Primary part (continued to be processed by worker).
+          "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.
-              # 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.
@@ -1721,8 +1720,9 @@
               },
             },
           },
-          "residual": { # Specification of one of the bundles produced as a result of splitting # Residual part (returned to the pool of work).
+          "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.
@@ -1802,7 +1802,6 @@
                 "highBits": 42, # The high order bits, including the sign: n >> 32.
               },
             },
-            "boolean": True or False, # Boolean value for And, Or.
             "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
@@ -1827,7 +1826,7 @@
             "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.
-            "internal": "", # Value for internally-defined counters used by the Dataflow service.
+            "boolean": True or False, # Boolean value for And, Or.
             "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.
@@ -1851,6 +1850,7 @@
                 "description": "A String", # Human-readable description of the counter semantics.
               },
             },
+            "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 # Integer value for Sum, Max, Min.
                 # encoded in JSON.
               "lowBits": 42, # The low order bits: n & 0xffffffff.
@@ -1898,7 +1898,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -1906,8 +1907,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
           "remainingTime": "A String", # Obsolete.
           "percentComplete": 3.14, # Obsolete.
@@ -1968,7 +1968,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -1976,8 +1977,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
           "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
@@ -2056,7 +2056,8 @@
           "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.
+          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+              # sharding).
           "key": "A String", # Position is a string key, ordered lexicographically.
           "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
@@ -2064,17 +2065,16 @@
             "position": # Object with schema name: Position # Position within the inner source.
             "index": 42, # Index of the inner source.
           },
-          "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-              # sharding).
+          "byteOffset": "A String", # Position is a byte offset.
         },
+        "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
@@ -2098,7 +2098,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -2106,8 +2107,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
         },
         "suggestedStopPoint": { # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest. # DEPRECATED in favor of split_request.
@@ -2117,7 +2117,8 @@
             "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.
+            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
+                # sharding).
             "key": "A String", # Position is a string key, ordered lexicographically.
             "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
@@ -2125,8 +2126,7 @@
               "position": # Object with schema name: Position # Position within the inner source.
               "index": 42, # Index of the inner source.
             },
-            "shufflePosition": "A String", # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED
-                # sharding).
+            "byteOffset": "A String", # Position is a byte offset.
           },
           "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 197f0c9..c5f3998 100644
--- a/docs/dyn/dataflow_v1b3.projects.templates.html
+++ b/docs/dyn/dataflow_v1b3.projects.templates.html
@@ -95,15 +95,15 @@
 
 { # 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.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
       "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.
+      "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
+          # Use with caution.
     },
     "gcsPath": "A String", # Required. A Cloud Storage path to the template from which to
         # create the job.
@@ -161,12 +161,13 @@
           # 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",
       },
-      "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-          # Cloud Dataflow service.
       "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.
@@ -220,6 +221,49 @@
               # 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.
@@ -296,16 +340,32 @@
                   #   storage.googleapis.com/{bucket}/{object}
                   #   bucket.storage.googleapis.com/{object}
             },
-            "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.
+            "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.
+                "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.
+            },
             "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.
@@ -331,78 +391,13 @@
                     # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
               },
             ],
-            "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.
-            "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                # Compute Engine API.
-            "ipConfiguration": "A String", # Configuration for VM IPs.
-            "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).
-            "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
+            "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.
-            "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                # the form "regions/REGION/subnetworks/SUBNETWORK".
-            "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.
-            },
-            "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.
-            "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-            },
           },
         ],
       },
-      "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.
       "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
@@ -418,6 +413,9 @@
             ],
             "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
@@ -425,7 +423,6 @@
                     # 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.
-                "durationValue": "A String", # Contains value if the data is of duration 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
@@ -436,9 +433,7 @@
                 "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.
-                "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.
+                "durationValue": "A String", # Contains value if the data is of duration type.
                 "int64Value": "A String", # Contains value if the data is of int64 type.
               },
             ],
@@ -450,6 +445,9 @@
         ],
         "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
@@ -457,7 +455,6 @@
                 # 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.
-            "durationValue": "A String", # Contains value if the data is of duration 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
@@ -468,9 +465,7 @@
             "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.
-            "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.
+            "durationValue": "A String", # Contains value if the data is of duration type.
             "int64Value": "A String", # Contains value if the data is of int64 type.
           },
         ],
@@ -492,19 +487,19 @@
             "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
-                "sizeBytes": "A String", # Size of the source, if measurable.
-                "name": "A String", # Dataflow service generated name for this source.
                 "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.
@@ -546,16 +541,26 @@
             # 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.
-          "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.
           "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.
         },
       ],
-      "location": "A String", # The location that contains this 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.
@@ -575,17 +580,12 @@
           #
           # This field is set by the Cloud 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.
+      "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+          # of the job it replaced.
           #
-          # 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.
+          # 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.
@@ -719,15 +719,15 @@
 
 { # 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.
+      "maxWorkers": 42, # The maximum number of Google Compute Engine instances to be made
+          # available to your pipeline during execution, from 1 to 1000.
       "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.
+      "bypassTempDirValidation": True or False, # Whether to bypass the safety checks for the job's temporary directory.
+          # Use with caution.
     },
     "parameters": { # The runtime parameters to pass to the job.
       "a_key": "A String",
@@ -790,12 +790,13 @@
             # 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",
         },
-        "createTime": "A String", # The timestamp when the job was initially created. Immutable and set by the
-            # Cloud Dataflow service.
         "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.
@@ -849,6 +850,49 @@
                 # 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.
@@ -925,16 +969,32 @@
                     #   storage.googleapis.com/{bucket}/{object}
                     #   bucket.storage.googleapis.com/{object}
               },
-              "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.
+              "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.
+                  "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.
+              },
               "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.
@@ -960,78 +1020,13 @@
                       # compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
                 },
               ],
-              "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.
-              "onHostMaintenance": "A String", # The action to take on host maintenance, as defined by the Google
-                  # Compute Engine API.
-              "ipConfiguration": "A String", # Configuration for VM IPs.
-              "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).
-              "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
+              "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.
-              "subnetwork": "A String", # Subnetwork to which VMs will be assigned, if desired.  Expected to be of
-                  # the form "regions/REGION/subnetworks/SUBNETWORK".
-              "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.
-              },
-              "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.
-              "diskType": "A String", # Type of root disk for VMs.  If empty 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",
-              },
             },
           ],
         },
-        "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.
         "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
@@ -1047,6 +1042,9 @@
               ],
               "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
@@ -1054,7 +1052,6 @@
                       # 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.
-                  "durationValue": "A String", # Contains value if the data is of duration 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
@@ -1065,9 +1062,7 @@
                   "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.
-                  "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.
+                  "durationValue": "A String", # Contains value if the data is of duration type.
                   "int64Value": "A String", # Contains value if the data is of int64 type.
                 },
               ],
@@ -1079,6 +1074,9 @@
           ],
           "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
@@ -1086,7 +1084,6 @@
                   # 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.
-              "durationValue": "A String", # Contains value if the data is of duration 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
@@ -1097,9 +1094,7 @@
               "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.
-              "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.
+              "durationValue": "A String", # Contains value if the data is of duration type.
               "int64Value": "A String", # Contains value if the data is of int64 type.
             },
           ],
@@ -1121,19 +1116,19 @@
               "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.
-                  "sizeBytes": "A String", # Size of the source, if measurable.
-                  "name": "A String", # Dataflow service generated name for this source.
                   "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.
-                  "sizeBytes": "A String", # Size of the source, if measurable.
-                  "name": "A String", # Dataflow service generated name for this source.
                   "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.
@@ -1175,16 +1170,26 @@
               # 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.
-            "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.
             "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.
           },
         ],
-        "location": "A String", # The location that contains this 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.
@@ -1204,17 +1209,12 @@
             #
             # This field is set by the Cloud 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.
+        "replaceJobId": "A String", # If this job is an update of an existing job, this field is the job ID
+            # of the job it replaced.
             #
-            # 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.
+            # 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.
diff --git a/docs/dyn/dataproc_v1.projects.regions.clusters.html b/docs/dyn/dataproc_v1.projects.regions.clusters.html
index 206a72b..7cb77f1 100644
--- a/docs/dyn/dataproc_v1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1.projects.regions.clusters.html
@@ -176,27 +176,27 @@
       },
     },
     "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.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
       "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",
       ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "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).
+      },
+      "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.
+      },
       "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.
-      },
-      "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).
-      },
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "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 <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)
@@ -211,50 +211,50 @@
       },
     ],
     "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.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
       "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",
       ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "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).
+      },
+      "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.
+      },
       "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.
-      },
-      "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).
-      },
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "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.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
       "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",
       ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "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).
+      },
+      "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.
+      },
       "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.
-      },
-      "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).
-      },
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
     },
   },
 }
@@ -475,27 +475,27 @@
         },
       },
       "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.
+        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
         "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",
         ],
-        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "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).
+        },
+        "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.
+        },
         "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.
-        },
-        "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).
-        },
+        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+        "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 <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)
@@ -510,50 +510,50 @@
         },
       ],
       "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.
+        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
         "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",
         ],
-        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "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).
+        },
+        "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.
+        },
         "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.
-        },
-        "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).
-        },
+        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+        "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.
+        "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
         "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",
         ],
-        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+        "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).
+        },
+        "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.
+        },
         "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.
-        },
-        "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).
-        },
+        "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+        "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
       },
     },
   }</pre>
@@ -650,27 +650,27 @@
             },
           },
           "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.
+            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
             "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",
             ],
-            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "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).
+            },
+            "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.
+            },
             "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.
-            },
-            "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).
-            },
+            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+            "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 <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)
@@ -685,50 +685,50 @@
             },
           ],
           "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.
+            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
             "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",
             ],
-            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "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).
+            },
+            "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.
+            },
             "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.
-            },
-            "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).
-            },
+            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+            "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.
+            "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
             "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",
             ],
-            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+            "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).
+            },
+            "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.
+            },
             "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.
-            },
-            "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).
-            },
+            "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+            "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
           },
         },
       },
@@ -831,27 +831,27 @@
       },
     },
     "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.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
       "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",
       ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "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).
+      },
+      "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.
+      },
       "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.
-      },
-      "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).
-      },
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "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 <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)
@@ -866,50 +866,50 @@
       },
     ],
     "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.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
       "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",
       ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "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).
+      },
+      "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.
+      },
       "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.
-      },
-      "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).
-      },
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "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.
+      "numInstances": 42, # Required The number of VM instances in the instance group. For master instance groups, must be set to 1.
       "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",
       ],
-      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
+      "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).
+      },
+      "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.
+      },
       "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.
-      },
-      "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).
-      },
+      "isPreemptible": True or False, # Optional Specifies that this instance group contains preemptible instances.
+      "imageUri": "A String", # Output-only The Google Compute Engine image resource used for cluster instances. Inferred from SoftwareConfig.image_version.
     },
   },
 }
diff --git a/docs/dyn/dataproc_v1.projects.regions.jobs.html b/docs/dyn/dataproc_v1.projects.regions.jobs.html
index 0ed4853..b5ceaf5 100644
--- a/docs/dyn/dataproc_v1.projects.regions.jobs.html
+++ b/docs/dyn/dataproc_v1.projects.regions.jobs.html
@@ -122,43 +122,8 @@
     "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>.
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-    },
-    "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.
-      "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",
-      ],
-      "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 Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "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",
-    },
-    "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.
+      "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.
@@ -223,10 +188,16 @@
         "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.
+    "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.
@@ -234,9 +205,38 @@
           "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.
       "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",
       ],
@@ -252,7 +252,7 @@
     },
     "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.
+      "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.
@@ -260,7 +260,7 @@
           "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.
+      "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.
@@ -290,8 +290,8 @@
       { # 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>.
         "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
+        "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.
@@ -368,43 +368,8 @@
     "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>.
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-    },
-    "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.
-      "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",
-      ],
-      "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 Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "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",
-    },
-    "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.
+      "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.
@@ -469,10 +434,16 @@
         "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.
+    "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.
@@ -480,9 +451,38 @@
           "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.
       "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",
       ],
@@ -498,7 +498,7 @@
     },
     "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.
+      "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.
@@ -506,7 +506,7 @@
           "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.
+      "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.
@@ -536,8 +536,8 @@
       { # 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>.
         "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
+        "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.
@@ -597,43 +597,8 @@
         "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>.
           "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-        },
-        "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.
-          "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",
-          ],
-          "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 Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-            "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",
-        },
-        "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.
+          "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.
@@ -698,10 +663,16 @@
             "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.
+        "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.
@@ -709,9 +680,38 @@
               "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.
           "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",
           ],
@@ -727,7 +727,7 @@
         },
         "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.
+          "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.
@@ -735,7 +735,7 @@
               "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.
+          "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.
@@ -765,8 +765,8 @@
           { # 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>.
             "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
+            "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.
@@ -830,43 +830,8 @@
   "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>.
     "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-  },
-  "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.
-    "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",
-    ],
-    "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 Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-      "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",
-  },
-  "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.
+    "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.
@@ -931,10 +896,16 @@
       "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.
+  "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.
@@ -942,9 +913,38 @@
         "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.
     "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",
     ],
@@ -960,7 +960,7 @@
   },
   "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.
+    "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.
@@ -968,7 +968,7 @@
         "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.
+    "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.
@@ -998,8 +998,8 @@
     { # 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>.
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
+      "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.
@@ -1044,43 +1044,8 @@
     "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>.
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-    },
-    "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.
-      "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",
-      ],
-      "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 Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "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",
-    },
-    "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.
+      "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.
@@ -1145,10 +1110,16 @@
         "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.
+    "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.
@@ -1156,9 +1127,38 @@
           "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.
       "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",
       ],
@@ -1174,7 +1174,7 @@
     },
     "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.
+      "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.
@@ -1182,7 +1182,7 @@
           "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.
+      "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.
@@ -1212,8 +1212,8 @@
       { # 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>.
         "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
+        "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.
@@ -1261,43 +1261,8 @@
       "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>.
         "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-      },
-      "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.
-        "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",
-        ],
-        "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 Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-          "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",
-      },
-      "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.
+        "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.
@@ -1362,10 +1327,16 @@
           "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.
+      "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.
@@ -1373,9 +1344,38 @@
             "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.
         "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",
         ],
@@ -1391,7 +1391,7 @@
       },
       "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.
+        "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.
@@ -1399,7 +1399,7 @@
             "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.
+        "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.
@@ -1429,8 +1429,8 @@
         { # 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>.
           "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
+          "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.
@@ -1475,43 +1475,8 @@
     "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>.
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
-    },
-    "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.
-      "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",
-      ],
-      "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 Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.
-        "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",
-    },
-    "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.
+      "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.
@@ -1576,10 +1541,16 @@
         "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.
+    "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.
@@ -1587,9 +1558,38 @@
           "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.
       "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",
       ],
@@ -1605,7 +1605,7 @@
     },
     "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.
+      "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.
@@ -1613,7 +1613,7 @@
           "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.
+      "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.
@@ -1643,8 +1643,8 @@
       { # 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>.
         "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
+        "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.
diff --git a/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html b/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
index 7da774d..33e337d 100644
--- a/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1alpha1.projects.regions.clusters.html
@@ -104,166 +104,166 @@
     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.
+    "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+    "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.
       "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
       "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.
-      "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).
-      },
-      "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",
-        },
-      },
-      "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".
-        "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".
-        "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",
-        ],
-        "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".
-      },
-      "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.
+  ],
+  "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.
+    "yarnMetrics": { # The YARN metrics.
       "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.
-      "yarnMetrics": { # The YARN metrics.
-        "a_key": "A String",
-      },
-      "hdfsMetrics": { # The HDFS metrics.
+    "hdfsMetrics": { # The HDFS metrics.
+      "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.
+    "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).
+    },
+    "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.
-        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-        "detail": "A String", # Optional details of cluster's state.
+    "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.
       },
     ],
-    "createTime": "A String", # Output-only The timestamp of cluster creation.
-  }
+    "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.
+      },
+    },
+  },
+  "createTime": "A String", # Output-only The timestamp of cluster creation.
+}
 
   x__xgafv: string, V1 error format.
     Allowed values
@@ -362,386 +362,34 @@
   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.
-        "state": "A String", # The cluster's state.
-        "stateStartTime": "A String", # Time when this state was entered.
-        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-        "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.
-        "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).
-        },
-        "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",
-          },
-        },
-        "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".
-          "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".
-          "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",
-          ],
-          "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".
-        },
-        "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.
-        "yarnMetrics": { # The YARN metrics.
-          "a_key": "A String",
-        },
-        "hdfsMetrics": { # The HDFS metrics.
-          "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.
-          "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-          "detail": "A String", # Optional details of cluster's state.
-        },
-      ],
-      "createTime": "A String", # Output-only The timestamp of cluster creation.
-    }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list">list(projectId, region, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
-  <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)
-  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)
-  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.
-      { # 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.
-            "state": "A String", # The cluster's state.
-            "stateStartTime": "A String", # Time when this state was entered.
-            "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-            "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.
-            "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).
-            },
-            "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",
-              },
-            },
-            "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".
-              "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".
-              "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",
-              ],
-              "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".
-            },
-            "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.
-            "yarnMetrics": { # The YARN metrics.
-              "a_key": "A String",
-            },
-            "hdfsMetrics": { # The HDFS metrics.
-              "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.
-              "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-              "detail": "A String", # Optional details of cluster's state.
-            },
-          ],
-          "createTime": "A String", # Output-only The timestamp of cluster creation.
-        },
-    ],
-  }</pre>
-</div>
-
-<div class="method">
-    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
-  <pre>Retrieves the next page of results.
-
-Args:
-  previous_request: The request for the previous page. (required)
-  previous_response: The response from the request for the previous page. (required)
-
-Returns:
-  A request object 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, clusterName, body, updateMask=None, x__xgafv=None)</code>
-  <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)
-  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.
       "state": "A String", # The cluster's state.
       "stateStartTime": "A String", # Time when this state was entered.
       "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
       "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.
+        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+        "detail": "A String", # 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 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.
+      "yarnMetrics": { # The YARN metrics.
+        "a_key": "A String",
+      },
+      "hdfsMetrics": { # The HDFS metrics.
+        "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.
       "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.
@@ -780,11 +428,11 @@
       "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".
-        "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".
+        "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",
         ],
-        "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".
+        "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.
@@ -872,30 +520,382 @@
         },
       },
     },
-    "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.
-      "yarnMetrics": { # The YARN metrics.
-        "a_key": "A String",
-      },
-      "hdfsMetrics": { # The HDFS metrics.
-        "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.
-        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-        "detail": "A String", # Optional details of cluster's state.
+    "createTime": "A String", # Output-only The timestamp of cluster creation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, region, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+  <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)
+  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)
+  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.
+      { # 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.
+          "state": "A String", # The cluster's state.
+          "stateStartTime": "A String", # Time when this state was entered.
+          "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+          "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.
+            "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+            "detail": "A String", # 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 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.
+          "yarnMetrics": { # The YARN metrics.
+            "a_key": "A String",
+          },
+          "hdfsMetrics": { # The HDFS metrics.
+            "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.
+          "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).
+          },
+          "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",
+            },
+          },
+          "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.
+            },
+          },
+        },
+        "createTime": "A String", # Output-only The timestamp of cluster creation.
       },
     ],
-    "createTime": "A String", # Output-only The timestamp of cluster creation.
-  }
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object 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, clusterName, body, updateMask=None, x__xgafv=None)</code>
+  <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)
+  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.
+    "state": "A String", # The cluster's state.
+    "stateStartTime": "A String", # Time when this state was entered.
+    "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+    "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.
+      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+      "detail": "A String", # 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 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.
+    "yarnMetrics": { # The YARN metrics.
+      "a_key": "A String",
+    },
+    "hdfsMetrics": { # The HDFS metrics.
+      "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.
+    "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).
+    },
+    "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",
+      },
+    },
+    "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.
+      },
+    },
+  },
+  "createTime": "A String", # Output-only The timestamp of cluster creation.
+}
 
   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:
 {
diff --git a/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html b/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
index eb57c6c..74f4d7f 100644
--- a/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
+++ b/docs/dyn/dataproc_v1alpha1.projects.regions.jobs.html
@@ -129,6 +129,9 @@
       "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.
+      "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",
+      ],
       "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",
       ],
@@ -140,9 +143,6 @@
           "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",
@@ -265,10 +265,10 @@
     "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.
+      "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",
       ],
-      "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.
+      "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.
@@ -361,6 +361,9 @@
       "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.
+      "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",
+      ],
       "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",
       ],
@@ -372,9 +375,6 @@
           "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",
@@ -497,10 +497,10 @@
     "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.
+      "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",
       ],
-      "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.
+      "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.
@@ -593,6 +593,9 @@
       "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.
+      "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",
+      ],
       "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",
       ],
@@ -604,9 +607,6 @@
           "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",
@@ -729,10 +729,10 @@
     "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.
+      "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",
       ],
-      "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.
+      "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.
@@ -809,11 +809,11 @@
     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.
+    "pageToken": "A String", # Optional The page token, returned by a previous call, to request the next page of results.
+    "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)
     "pageSize": 42, # Optional The number of results to return in each response.
+    "jobStateMatcher": "A String", # Optional Specifies enumerated categories of jobs to list.
   }
 
   x__xgafv: string, V1 error format.
@@ -838,6 +838,9 @@
           "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.
+          "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",
+          ],
           "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",
           ],
@@ -849,9 +852,6 @@
               "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",
@@ -974,10 +974,10 @@
         "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.
+          "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",
           ],
-          "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.
+          "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.
@@ -1081,6 +1081,9 @@
     "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.
+    "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",
+    ],
     "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",
     ],
@@ -1092,9 +1095,6 @@
         "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",
@@ -1217,10 +1217,10 @@
   "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.
+    "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",
     ],
-    "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.
+    "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.
@@ -1305,6 +1305,9 @@
       "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.
+      "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",
+      ],
       "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",
       ],
@@ -1316,9 +1319,6 @@
           "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",
@@ -1441,10 +1441,10 @@
     "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.
+      "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",
       ],
-      "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.
+      "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.
@@ -1532,6 +1532,9 @@
         "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.
+        "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",
+        ],
         "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",
         ],
@@ -1543,9 +1546,6 @@
             "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",
@@ -1668,10 +1668,10 @@
       "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.
+        "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",
         ],
-        "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.
+        "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.
@@ -1756,6 +1756,9 @@
       "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.
+      "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",
+      ],
       "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",
       ],
@@ -1767,9 +1770,6 @@
           "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",
@@ -1892,10 +1892,10 @@
     "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.
+      "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",
       ],
-      "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.
+      "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.
diff --git a/docs/dyn/dataproc_v1beta1.projects.clusters.html b/docs/dyn/dataproc_v1beta1.projects.clusters.html
index 8a4fe9e..a00b0e8 100644
--- a/docs/dyn/dataproc_v1beta1.projects.clusters.html
+++ b/docs/dyn/dataproc_v1beta1.projects.clusters.html
@@ -112,28 +112,6 @@
     "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
     "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.
-      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-      "detail": "A String", # 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 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.
-    "yarnMetrics": { # The YARN metrics.
-      "a_key": "A String",
-    },
-    "hdfsMetrics": { # The HDFS metrics.
-      "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).
@@ -242,6 +220,28 @@
       },
     },
   },
+  "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.
+    "yarnMetrics": { # The YARN metrics.
+      "a_key": "A String",
+    },
+    "hdfsMetrics": { # The HDFS metrics.
+      "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.
+      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+      "detail": "A String", # Optional details of cluster's state.
+    },
+  ],
 }
 
   x__xgafv: string, V1 error format.
@@ -394,28 +394,6 @@
       "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
       "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.
-        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-        "detail": "A String", # 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 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.
-      "yarnMetrics": { # The YARN metrics.
-        "a_key": "A String",
-      },
-      "hdfsMetrics": { # The HDFS metrics.
-        "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).
@@ -524,6 +502,28 @@
         },
       },
     },
+    "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.
+      "yarnMetrics": { # The YARN metrics.
+        "a_key": "A String",
+      },
+      "hdfsMetrics": { # The HDFS metrics.
+        "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.
+        "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+        "detail": "A String", # Optional details of cluster's state.
+      },
+    ],
   }</pre>
 </div>
 
@@ -554,28 +554,6 @@
           "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
           "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.
-            "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-            "detail": "A String", # 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 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.
-          "yarnMetrics": { # The YARN metrics.
-            "a_key": "A String",
-          },
-          "hdfsMetrics": { # The HDFS metrics.
-            "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).
@@ -684,6 +662,28 @@
             },
           },
         },
+        "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.
+          "yarnMetrics": { # The YARN metrics.
+            "a_key": "A String",
+          },
+          "hdfsMetrics": { # The HDFS metrics.
+            "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.
+            "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+            "detail": "A String", # Optional details of cluster's state.
+          },
+        ],
       },
     ],
   }</pre>
@@ -720,28 +720,6 @@
     "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
     "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.
-      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
-      "detail": "A String", # 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 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.
-    "yarnMetrics": { # The YARN metrics.
-      "a_key": "A String",
-    },
-    "hdfsMetrics": { # The HDFS metrics.
-      "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).
@@ -850,6 +828,28 @@
       },
     },
   },
+  "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.
+    "yarnMetrics": { # The YARN metrics.
+      "a_key": "A String",
+    },
+    "hdfsMetrics": { # The HDFS metrics.
+      "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.
+      "substate": "A String", # Output-only Additional state information that includes status reported by the agent.
+      "detail": "A String", # Optional details of cluster's state.
+    },
+  ],
 }
 
   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:
diff --git a/docs/dyn/dataproc_v1beta1.projects.jobs.html b/docs/dyn/dataproc_v1beta1.projects.jobs.html
index c9b5277..22a5584 100644
--- a/docs/dyn/dataproc_v1beta1.projects.jobs.html
+++ b/docs/dyn/dataproc_v1beta1.projects.jobs.html
@@ -124,41 +124,6 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "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";).
@@ -190,14 +155,6 @@
         "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]).
@@ -230,6 +187,45 @@
         "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.
+      },
+    ],
+    "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.
+    },
+    "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",
+    },
     "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.
@@ -287,6 +283,10 @@
     "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.
         "state": "A String", # Required A state message specifying the overall job state.
@@ -371,41 +371,6 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "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";).
@@ -437,14 +402,6 @@
         "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]).
@@ -477,6 +434,45 @@
         "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.
+      },
+    ],
+    "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.
+    },
+    "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",
+    },
     "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.
@@ -534,6 +530,10 @@
     "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.
         "state": "A String", # Required A state message specifying the overall job state.
@@ -602,41 +602,6 @@
           "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
           "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";).
@@ -668,14 +633,6 @@
             "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]).
@@ -708,6 +665,45 @@
             "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.
+          },
+        ],
+        "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.
+        },
+        "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",
+        },
         "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.
@@ -765,6 +761,10 @@
         "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.
             "state": "A String", # Required A state message specifying the overall job state.
@@ -837,41 +837,6 @@
     "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
     "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";).
@@ -903,14 +868,6 @@
       "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]).
@@ -943,6 +900,45 @@
       "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.
+    },
+  ],
+  "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.
+  },
+  "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",
+  },
   "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.
@@ -1000,6 +996,10 @@
   "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.
       "state": "A String", # Required A state message specifying the overall job state.
@@ -1054,41 +1054,6 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "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";).
@@ -1120,14 +1085,6 @@
         "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]).
@@ -1160,6 +1117,45 @@
         "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.
+      },
+    ],
+    "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.
+    },
+    "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",
+    },
     "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.
@@ -1217,6 +1213,10 @@
     "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.
         "state": "A String", # Required A state message specifying the overall job state.
@@ -1273,41 +1273,6 @@
         "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
         "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";).
@@ -1339,14 +1304,6 @@
           "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]).
@@ -1379,6 +1336,45 @@
           "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.
+        },
+      ],
+      "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.
+      },
+      "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",
+      },
       "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.
@@ -1436,6 +1432,10 @@
       "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.
           "state": "A String", # Required A state message specifying the overall job state.
@@ -1490,41 +1490,6 @@
       "substate": "A String", # Output-only Additional state information, which includes status reported by the agent.
       "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";).
@@ -1556,14 +1521,6 @@
         "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]).
@@ -1596,6 +1553,45 @@
         "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.
+      },
+    ],
+    "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.
+    },
+    "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",
+    },
     "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.
@@ -1653,6 +1649,10 @@
     "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.
         "state": "A String", # Required A state message specifying the overall job state.
diff --git a/docs/dyn/dlp_v2beta1.content.html b/docs/dyn/dlp_v2beta1.content.html
index 76cbb56..5e52893 100644
--- a/docs/dyn/dlp_v2beta1.content.html
+++ b/docs/dyn/dlp_v2beta1.content.html
@@ -140,12 +140,9 @@
             # smaller batches.
         "findings": [ # List of findings for an item.
           { # Container structure describing a single finding within a string or image.
-            "quote": "A String", # The specific string that may be potentially sensitive info.
-            "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
             "infoType": { # Type of information detected by the API. # The specific type of info the string might be.
               "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
             },
-            "createTime": "A String", # Timestamp when finding was detected.
             "location": { # Specifies the location of a finding within its source item. # Location of the info found.
               "fieldId": { # General identifier of a data field in a storage service. # Field id of the field containing the finding.
                 "columnName": "A String", # Column name describing the field.
@@ -190,13 +187,13 @@
                             # A kind matching regex `__.*__` is reserved/read-only.
                             # A kind must not contain more than 1500 bytes when UTF-8 encoded.
                             # Cannot be `""`.
-                        "id": "A String", # The auto-allocated ID of the entity.
-                            # Never equal to zero. Values less than zero are discouraged and may not
-                            # be supported in the future.
                         "name": "A String", # The name of the entity.
                             # A name matching regex `__.*__` is reserved/read-only.
                             # A name must not be more than 1500 bytes when UTF-8 encoded.
                             # Cannot be `""`.
+                        "id": "A String", # The auto-allocated ID of the entity.
+                            # Never equal to zero. Values less than zero are discouraged and may not
+                            # be supported in the future.
                       },
                     ],
                     "partitionId": { # Datastore partition ID. # Entities are partitioned into subsets, currently identified by a project
@@ -220,6 +217,9 @@
                 "end": "A String", # Index of the last character of the range (exclusive).
               },
             },
+            "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
+            "createTime": "A String", # Timestamp when finding was detected.
+            "quote": "A String", # The specific string that may be potentially sensitive info.
           },
         ],
       },
@@ -247,6 +247,17 @@
         "value": "A String", # String data to inspect or redact.
       },
     ],
+    "replaceConfigs": [ # The strings to replace findings with. Must specify at least one.
+      {
+        "replaceWith": "A String", # Content replacing sensitive information of given type. Max 256 chars.
+        "infoType": { # Type of information detected by the API. # Type of information to replace. Only one ReplaceConfig per info_type
+            # should be provided. If ReplaceConfig does not have an info_type, we'll
+            # match it against all info_types that are found but not specified in
+            # another ReplaceConfig.
+          "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
+        },
+      },
+    ],
     "inspectConfig": { # Configuration description of the scanning process. # Configuration for the inspector.
         # When used with redactContent only info_types and min_likelihood are currently
         # used.
@@ -263,17 +274,6 @@
       ],
       "maxFindings": 42, # Limit the number of findings per content item.
     },
-    "replaceConfigs": [ # The strings to replace findings with. Must specify at least one.
-      {
-        "replaceWith": "A String", # Content replacing sensitive information of given type. Max 256 chars.
-        "infoType": { # Type of information detected by the API. # Type of information to replace. Only one ReplaceConfig per info_type
-            # should be provided. If ReplaceConfig does not have an info_type, we'll
-            # match it against all info_types that are found but not specified in
-            # another ReplaceConfig.
-          "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
-        },
-      },
-    ],
   }
 
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/dlp_v2beta1.inspect.operations.html b/docs/dyn/dlp_v2beta1.inspect.operations.html
index 0daa74f..3921a91 100644
--- a/docs/dyn/dlp_v2beta1.inspect.operations.html
+++ b/docs/dyn/dlp_v2beta1.inspect.operations.html
@@ -416,6 +416,7 @@
   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.
@@ -494,7 +495,6 @@
         "name": "A String", # The server-assigned name, The `name` should have the format of `inspect/operations/<identifier>`.
       },
     ],
-    "nextPageToken": "A String", # The standard List next-page token.
   }</pre>
 </div>
 
diff --git a/docs/dyn/dlp_v2beta1.inspect.results.findings.html b/docs/dyn/dlp_v2beta1.inspect.results.findings.html
index 6c6ea50..fa160ec 100644
--- a/docs/dyn/dlp_v2beta1.inspect.results.findings.html
+++ b/docs/dyn/dlp_v2beta1.inspect.results.findings.html
@@ -75,14 +75,14 @@
 <h1><a href="dlp_v2beta1.html">DLP API</a> . <a href="dlp_v2beta1.inspect.html">inspect</a> . <a href="dlp_v2beta1.inspect.results.html">results</a> . <a href="dlp_v2beta1.inspect.results.findings.html">findings</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Returns list of results for given inspect operation result set id.</p>
 <p class="toc_element">
   <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=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Returns list of results for given inspect operation result set id.
 
 Args:
@@ -114,12 +114,9 @@
           # smaller batches.
       "findings": [ # List of findings for an item.
         { # Container structure describing a single finding within a string or image.
-          "quote": "A String", # The specific string that may be potentially sensitive info.
-          "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
           "infoType": { # Type of information detected by the API. # The specific type of info the string might be.
             "name": "A String", # Name of the information type, provided by the API call ListInfoTypes.
           },
-          "createTime": "A String", # Timestamp when finding was detected.
           "location": { # Specifies the location of a finding within its source item. # Location of the info found.
             "fieldId": { # General identifier of a data field in a storage service. # Field id of the field containing the finding.
               "columnName": "A String", # Column name describing the field.
@@ -164,13 +161,13 @@
                           # A kind matching regex `__.*__` is reserved/read-only.
                           # A kind must not contain more than 1500 bytes when UTF-8 encoded.
                           # Cannot be `""`.
-                      "id": "A String", # The auto-allocated ID of the entity.
-                          # Never equal to zero. Values less than zero are discouraged and may not
-                          # be supported in the future.
                       "name": "A String", # The name of the entity.
                           # A name matching regex `__.*__` is reserved/read-only.
                           # A name must not be more than 1500 bytes when UTF-8 encoded.
                           # Cannot be `""`.
+                      "id": "A String", # The auto-allocated ID of the entity.
+                          # Never equal to zero. Values less than zero are discouraged and may not
+                          # be supported in the future.
                     },
                   ],
                   "partitionId": { # Datastore partition ID. # Entities are partitioned into subsets, currently identified by a project
@@ -194,6 +191,9 @@
               "end": "A String", # Index of the last character of the range (exclusive).
             },
           },
+          "likelihood": "A String", # Estimate of how likely it is that the info_type is correct.
+          "createTime": "A String", # Timestamp when finding was detected.
+          "quote": "A String", # The specific string that may be potentially sensitive info.
         },
       ],
     },
diff --git a/docs/dyn/firebasedynamiclinks_v1.shortLinks.html b/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
index 45a6f7f..e60a18f 100644
--- a/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
+++ b/docs/dyn/firebasedynamiclinks_v1.shortLinks.html
@@ -139,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.
diff --git a/docs/dyn/firebaserules_v1.projects.html b/docs/dyn/firebaserules_v1.projects.html
index f860c39..50c4f3e 100644
--- a/docs/dyn/firebaserules_v1.projects.html
+++ b/docs/dyn/firebaserules_v1.projects.html
@@ -85,11 +85,11 @@
 <p class="firstline">Returns the rulesets Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#test">test(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#test">test(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Test `Source` for syntactic and semantic correctness. Issues present, if</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="test">test(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="test">test(name, body, x__xgafv=None)</code>
   <pre>Test `Source` for syntactic and semantic correctness. Issues present, if
 any, will be returned to the caller with a description, severity, and
 source location.
@@ -162,19 +162,6 @@
           "A String",
         ],
         "state": "A String", # State of the test.
-        "errorPosition": { # Position in the `Source` content including its line, column number, and an # Position in the `Source` or `Ruleset` where the principle runtime error
-            # occurs.
-            #
-            # Evaluation of an expression may result in an error. Rules are deny by
-            # default, so a `DENY` expectation when an error is generated is valid.
-            # When there is a `DENY` with an error, the `SourcePosition` is returned.
-            #
-            # E.g. `error_position { line: 19 column: 37 }`
-            # index of the `File` in the `Source` message. Used for debug purposes.
-          "column": 42, # First column on the source line associated with the source fragment.
-          "line": 42, # Line number of the source fragment. 1-based.
-          "fileName": "A String", # Name of the `File`.
-        },
         "functionCalls": [ # The set of function calls made to service-defined methods.
             #
             # Function calls are included in the order in which they are encountered
@@ -188,6 +175,19 @@
             ],
           },
         ],
+        "errorPosition": { # Position in the `Source` content including its line, column number, and an # Position in the `Source` or `Ruleset` where the principle runtime error
+            # occurs.
+            #
+            # Evaluation of an expression may result in an error. Rules are deny by
+            # default, so a `DENY` expectation when an error is generated is valid.
+            # When there is a `DENY` with an error, the `SourcePosition` is returned.
+            #
+            # E.g. `error_position { line: 19 column: 37 }`
+            # index of the `File` in the `Source` message. Used for debug purposes.
+          "column": 42, # First column on the source line associated with the source fragment.
+          "line": 42, # Line number of the source fragment. 1-based.
+          "fileName": "A String", # Name of the `File`.
+        },
       },
     ],
     "issues": [ # Syntactic and semantic `Source` issues of varying severity. Issues of
diff --git a/docs/dyn/firebaserules_v1.projects.releases.html b/docs/dyn/firebaserules_v1.projects.releases.html
index 0b56eb8..f4cf4a5 100644
--- a/docs/dyn/firebaserules_v1.projects.releases.html
+++ b/docs/dyn/firebaserules_v1.projects.releases.html
@@ -75,26 +75,26 @@
 <h1><a href="firebaserules_v1.html">Firebase Rules API</a> . <a href="firebaserules_v1.projects.html">projects</a> . <a href="firebaserules_v1.projects.releases.html">releases</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Create a `Release`.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Delete a `Release` by resource name.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Get a `Release` by name.</p>
 <p class="toc_element">
-  <code><a href="#list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">List the `Release` values for a project. This list may optionally be</p>
 <p class="toc_element">
   <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=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Update a `Release`.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Create a `Release`.
 
 Release names should reflect the developer's deployment practices. For
@@ -131,6 +131,8 @@
         # Output only.
     "rulesetName": "A String", # Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must
         # exist the `Release` to be created.
+    "createTime": "A String", # Time the release was created.
+        # Output only.
     "name": "A String", # Resource name for the `Release`.
         # 
         # `Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`
@@ -155,8 +157,6 @@
         # relationship between `Release` instances.
         # 
         # Format: `projects/{project_id}/releases/{release_id}`
-    "createTime": "A String", # Time the release was created.
-        # Output only.
   }
 
   x__xgafv: string, V1 error format.
@@ -173,6 +173,8 @@
           # Output only.
       "rulesetName": "A String", # Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must
           # exist the `Release` to be created.
+      "createTime": "A String", # Time the release was created.
+          # Output only.
       "name": "A String", # Resource name for the `Release`.
           #
           # `Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`
@@ -197,13 +199,11 @@
           # relationship between `Release` instances.
           #
           # Format: `projects/{project_id}/releases/{release_id}`
-      "createTime": "A String", # Time the release was created.
-          # Output only.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Delete a `Release` by resource name.
 
 Args:
@@ -231,7 +231,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Get a `Release` by name.
 
 Args:
@@ -252,6 +252,8 @@
           # Output only.
       "rulesetName": "A String", # Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must
           # exist the `Release` to be created.
+      "createTime": "A String", # Time the release was created.
+          # Output only.
       "name": "A String", # Resource name for the `Release`.
           #
           # `Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`
@@ -276,13 +278,11 @@
           # relationship between `Release` instances.
           #
           # Format: `projects/{project_id}/releases/{release_id}`
-      "createTime": "A String", # Time the release was created.
-          # Output only.
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>List the `Release` values for a project. This list may optionally be
 filtered by `Release` name, `Ruleset` name, `TestSuite` name, or any
 combination thereof.
@@ -339,6 +339,8 @@
               # Output only.
           "rulesetName": "A String", # Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must
               # exist the `Release` to be created.
+          "createTime": "A String", # Time the release was created.
+              # Output only.
           "name": "A String", # Resource name for the `Release`.
               #
               # `Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`
@@ -363,8 +365,6 @@
               # relationship between `Release` instances.
               #
               # Format: `projects/{project_id}/releases/{release_id}`
-          "createTime": "A String", # Time the release was created.
-              # Output only.
         },
     ],
   }</pre>
@@ -385,7 +385,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(name, body, x__xgafv=None)</code>
   <pre>Update a `Release`.
 
 Only updates to the `ruleset_name` and `test_suite_name` fields will be
@@ -426,6 +426,8 @@
         # Output only.
     "rulesetName": "A String", # Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must
         # exist the `Release` to be created.
+    "createTime": "A String", # Time the release was created.
+        # Output only.
     "name": "A String", # Resource name for the `Release`.
         # 
         # `Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`
@@ -450,8 +452,6 @@
         # relationship between `Release` instances.
         # 
         # Format: `projects/{project_id}/releases/{release_id}`
-    "createTime": "A String", # Time the release was created.
-        # Output only.
   }
 
   x__xgafv: string, V1 error format.
@@ -468,6 +468,8 @@
           # Output only.
       "rulesetName": "A String", # Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must
           # exist the `Release` to be created.
+      "createTime": "A String", # Time the release was created.
+          # Output only.
       "name": "A String", # Resource name for the `Release`.
           #
           # `Release` names may be structured `app1/prod/v2` or flat `app1_prod_v2`
@@ -492,8 +494,6 @@
           # relationship between `Release` instances.
           #
           # Format: `projects/{project_id}/releases/{release_id}`
-      "createTime": "A String", # Time the release was created.
-          # Output only.
     }</pre>
 </div>
 
diff --git a/docs/dyn/firebaserules_v1.projects.rulesets.html b/docs/dyn/firebaserules_v1.projects.rulesets.html
index dc882f0..11a8b34 100644
--- a/docs/dyn/firebaserules_v1.projects.rulesets.html
+++ b/docs/dyn/firebaserules_v1.projects.rulesets.html
@@ -75,23 +75,23 @@
 <h1><a href="firebaserules_v1.html">Firebase Rules API</a> . <a href="firebaserules_v1.projects.html">projects</a> . <a href="firebaserules_v1.projects.rulesets.html">rulesets</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Create a `Ruleset` from `Source`.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Delete a `Ruleset` by resource name.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Get a `Ruleset` by name including the full `Source` contents.</p>
 <p class="toc_element">
-  <code><a href="#list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">List `Ruleset` metadata only and optionally filter the results by `Ruleset`</p>
 <p class="toc_element">
   <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(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Create a `Ruleset` from `Source`.
 
 The `Ruleset` is given a unique generated name which is returned to the
@@ -152,7 +152,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Delete a `Ruleset` by resource name.
 
 If the `Ruleset` is referenced by a `Release` the operation will fail.
@@ -182,7 +182,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Get a `Ruleset` by name including the full `Source` contents.
 
 Args:
@@ -217,7 +217,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(name=None, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>List `Ruleset` metadata only and optionally filter the results by `Ruleset`
 name.
 
diff --git a/docs/dyn/fusiontables_v2.query.html b/docs/dyn/fusiontables_v2.query.html
index 04597bb..74e3871 100644
--- a/docs/dyn/fusiontables_v2.query.html
+++ b/docs/dyn/fusiontables_v2.query.html
@@ -75,20 +75,20 @@
 <h1><a href="fusiontables_v2.html">Fusion Tables API</a> . <a href="fusiontables_v2.query.html">query</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#sql">sql(sql=None, hdrs=None, typed=None)</a></code></p>
+  <code><a href="#sql">sql(sql, hdrs=None, typed=None)</a></code></p>
 <p class="firstline">Executes a Fusion Tables SQL statement, which can be any of </p>
 <p class="toc_element">
-  <code><a href="#sqlGet">sqlGet(sql=None, hdrs=None, typed=None)</a></code></p>
+  <code><a href="#sqlGet">sqlGet(sql, hdrs=None, typed=None)</a></code></p>
 <p class="firstline">Executes a SQL statement which can be any of </p>
 <p class="toc_element">
-  <code><a href="#sqlGet_media">sqlGet_media(sql=None, hdrs=None, typed=None)</a></code></p>
+  <code><a href="#sqlGet_media">sqlGet_media(sql, hdrs=None, typed=None)</a></code></p>
 <p class="firstline">Executes a SQL statement which can be any of </p>
 <p class="toc_element">
-  <code><a href="#sql_media">sql_media(sql=None, hdrs=None, typed=None)</a></code></p>
+  <code><a href="#sql_media">sql_media(sql, hdrs=None, typed=None)</a></code></p>
 <p class="firstline">Executes a Fusion Tables SQL statement, which can be any of </p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="sql">sql(sql=None, hdrs=None, typed=None)</code>
+    <code class="details" id="sql">sql(sql, hdrs=None, typed=None)</code>
   <pre>Executes a Fusion Tables SQL statement, which can be any of 
 - SELECT
 - INSERT
@@ -127,7 +127,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="sqlGet">sqlGet(sql=None, hdrs=None, typed=None)</code>
+    <code class="details" id="sqlGet">sqlGet(sql, hdrs=None, typed=None)</code>
   <pre>Executes a SQL statement which can be any of 
 - SELECT
 - SHOW
@@ -158,7 +158,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="sqlGet_media">sqlGet_media(sql=None, hdrs=None, typed=None)</code>
+    <code class="details" id="sqlGet_media">sqlGet_media(sql, hdrs=None, typed=None)</code>
   <pre>Executes a SQL statement which can be any of 
 - SELECT
 - SHOW
@@ -179,7 +179,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="sql_media">sql_media(sql=None, hdrs=None, typed=None)</code>
+    <code class="details" id="sql_media">sql_media(sql, hdrs=None, typed=None)</code>
   <pre>Executes a Fusion Tables SQL statement, which can be any of 
 - SELECT
 - INSERT
diff --git a/docs/dyn/games_v1.revisions.html b/docs/dyn/games_v1.revisions.html
index 315f38b..dcfa5bf 100644
--- a/docs/dyn/games_v1.revisions.html
+++ b/docs/dyn/games_v1.revisions.html
@@ -75,11 +75,11 @@
 <h1><a href="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.revisions.html">revisions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#check">check(clientRevision=None, consistencyToken=None)</a></code></p>
+  <code><a href="#check">check(clientRevision, consistencyToken=None)</a></code></p>
 <p class="firstline">Checks whether the games client is out of date.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="check">check(clientRevision=None, consistencyToken=None)</code>
+    <code class="details" id="check">check(clientRevision, consistencyToken=None)</code>
   <pre>Checks whether the games client is out of date.
 
 Args:
diff --git a/docs/dyn/genomics_v1.annotations.html b/docs/dyn/genomics_v1.annotations.html
index f67494e..8a88529 100644
--- a/docs/dyn/genomics_v1.annotations.html
+++ b/docs/dyn/genomics_v1.annotations.html
@@ -118,13 +118,6 @@
     The object takes the form of:
 
 {
-    "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.
     "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
@@ -142,53 +135,6 @@
         "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.
-        "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.
-            {
-              "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.
-                },
-              ],
-              "conceptId": "A String", # The MedGen concept id associated with this gene.
-                  # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-              "omimId": "A String", # The OMIM id for this condition.
-                  # Search for these IDs at http://omim.org/
-              "names": [ # A set of names for the condition.
-                "A String",
-              ],
-            },
-          ],
-          "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.
         "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
@@ -252,9 +198,63 @@
           ],
           "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.
+            {
+              "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/
+              "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.
+        },
+        "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.
         "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.
   }
 
   x__xgafv: string, V1 error format.
@@ -347,53 +347,6 @@
           "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.
-          "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.
-              {
-                "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.
-                  },
-                ],
-                "conceptId": "A String", # The MedGen concept id associated with this gene.
-                    # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-                "omimId": "A String", # The OMIM id for this condition.
-                    # Search for these IDs at http://omim.org/
-                "names": [ # A set of names for the condition.
-                  "A String",
-                ],
-              },
-            ],
-            "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.
           "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
@@ -457,6 +410,53 @@
             ],
             "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.
+              {
+                "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/
+                "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.
+          },
+          "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.
           "id": "A String", # The server-generated annotation ID, unique across all annotations.
         },
       },
@@ -508,53 +508,6 @@
   "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.
-  "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.
-      {
-        "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.
-          },
-        ],
-        "conceptId": "A String", # The MedGen concept id associated with this gene.
-            # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-        "omimId": "A String", # The OMIM id for this condition.
-            # Search for these IDs at http://omim.org/
-        "names": [ # A set of names for the condition.
-          "A String",
-        ],
-      },
-    ],
-    "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.
   "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
@@ -618,6 +571,53 @@
     ],
     "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.
+      {
+        "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/
+        "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.
+  },
+  "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.
   "id": "A String", # The server-generated annotation ID, unique across all annotations.
 }
 
@@ -644,53 +644,6 @@
     "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.
-    "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.
-        {
-          "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.
-            },
-          ],
-          "conceptId": "A String", # The MedGen concept id associated with this gene.
-              # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-          "omimId": "A String", # The OMIM id for this condition.
-              # Search for these IDs at http://omim.org/
-          "names": [ # A set of names for the condition.
-            "A String",
-          ],
-        },
-      ],
-      "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.
     "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
@@ -754,6 +707,53 @@
       ],
       "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.
+        {
+          "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/
+          "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.
+    },
+    "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.
     "id": "A String", # The server-generated annotation ID, unique across all annotations.
   }</pre>
 </div>
@@ -815,53 +815,6 @@
     "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.
-    "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.
-        {
-          "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.
-            },
-          ],
-          "conceptId": "A String", # The MedGen concept id associated with this gene.
-              # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-          "omimId": "A String", # The OMIM id for this condition.
-              # Search for these IDs at http://omim.org/
-          "names": [ # A set of names for the condition.
-            "A String",
-          ],
-        },
-      ],
-      "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.
     "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
@@ -925,6 +878,53 @@
       ],
       "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.
+        {
+          "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/
+          "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.
+    },
+    "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.
     "id": "A String", # The server-generated annotation ID, unique across all annotations.
   }</pre>
 </div>
@@ -996,53 +996,6 @@
         "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.
-        "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.
-            {
-              "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.
-                },
-              ],
-              "conceptId": "A String", # The MedGen concept id associated with this gene.
-                  # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-              "omimId": "A String", # The OMIM id for this condition.
-                  # Search for these IDs at http://omim.org/
-              "names": [ # A set of names for the condition.
-                "A String",
-              ],
-            },
-          ],
-          "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.
         "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
@@ -1106,6 +1059,53 @@
           ],
           "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.
+            {
+              "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/
+              "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.
+        },
+        "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.
         "id": "A String", # The server-generated annotation ID, unique across all annotations.
       },
     ],
@@ -1151,53 +1151,6 @@
   "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.
-  "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.
-      {
-        "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.
-          },
-        ],
-        "conceptId": "A String", # The MedGen concept id associated with this gene.
-            # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-        "omimId": "A String", # The OMIM id for this condition.
-            # Search for these IDs at http://omim.org/
-        "names": [ # A set of names for the condition.
-          "A String",
-        ],
-      },
-    ],
-    "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.
   "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
@@ -1261,6 +1214,53 @@
     ],
     "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.
+      {
+        "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/
+        "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.
+  },
+  "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.
   "id": "A String", # The server-generated annotation ID, unique across all annotations.
 }
 
@@ -1293,53 +1293,6 @@
     "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.
-    "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.
-        {
-          "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.
-            },
-          ],
-          "conceptId": "A String", # The MedGen concept id associated with this gene.
-              # Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
-          "omimId": "A String", # The OMIM id for this condition.
-              # Search for these IDs at http://omim.org/
-          "names": [ # A set of names for the condition.
-            "A String",
-          ],
-        },
-      ],
-      "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.
     "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
@@ -1403,6 +1356,53 @@
       ],
       "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.
+        {
+          "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/
+          "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.
+    },
+    "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.
     "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 780e01d..4628af6 100644
--- a/docs/dyn/genomics_v1.annotationsets.html
+++ b/docs/dyn/genomics_v1.annotationsets.html
@@ -90,7 +90,7 @@
   <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, x__xgafv=None, updateMask=None)</a></code></p>
+  <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">
@@ -111,33 +111,6 @@
     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, 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.
-  "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.
-    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
@@ -154,7 +127,34 @@
     "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>
+  }
+
+  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.
+      "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">
@@ -200,23 +200,23 @@
   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.
-    "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>
+        # 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.
+      "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">
@@ -265,23 +265,23 @@
         # 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, string[]> (string key mapping to a list of string values).
-          "a_key": [
-            "",
-          ],
+            # 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.
+          "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.
         },
-        "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>
@@ -301,7 +301,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(annotationSetId, body, x__xgafv=None, updateMask=None)</code>
+    <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.
@@ -312,38 +312,6 @@
     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, 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.
-  "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.
-    Allowed values
-      1 - v1 error format
-      2 - v2 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
@@ -360,7 +328,39 @@
     "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>
+  }
+
+  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.
+      "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>
 
 </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 cc22f1c..261095d 100644
--- a/docs/dyn/genomics_v1.callsets.html
+++ b/docs/dyn/genomics_v1.callsets.html
@@ -106,40 +106,8 @@
     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, string[]> (string key mapping to a list of string values).
-    "a_key": [
-      "",
-    ],
-  },
-  "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).
-    "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
@@ -159,7 +127,39 @@
       "A String",
     ],
     "id": "A String", # The server-generated call set ID, unique across all call sets.
-  }</pre>
+  }
+
+  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, string[]> (string key mapping to a list of string values).
+        "a_key": [
+          "",
+        ],
+      },
+      "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).
+        "A String",
+      ],
+      "id": "A String", # The server-generated call set ID, unique across all call sets.
+    }</pre>
 </div>
 
 <div class="method">
@@ -211,28 +211,28 @@
   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, string[]> (string key mapping to a list of string values).
-      "a_key": [
-        "",
+        # 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": [
+          "",
+        ],
+      },
+      "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).
+        "A String",
       ],
-    },
-    "name": "A String", # The call set name.
-    "created": "A String", # The date this call set was created in milliseconds from the epoch.
-    "sampleId": "A String", # The sample ID this call set corresponds to.
-    "variantSetIds": [ # The IDs of the variant sets this call set belongs to. 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.
-  }</pre>
+      "id": "A String", # The server-generated call set ID, unique across all call sets.
+    }</pre>
 </div>
 
 <div class="method">
@@ -251,44 +251,8 @@
     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, string[]> (string key mapping to a list of string values).
-    "a_key": [
-      "",
-    ],
-  },
-  "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).
-    "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.
-  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
@@ -308,7 +272,43 @@
       "A String",
     ],
     "id": "A String", # The server-generated call set ID, unique across all call sets.
-  }</pre>
+  }
+
+  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, string[]> (string key mapping to a list of string values).
+        "a_key": [
+          "",
+        ],
+      },
+      "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).
+        "A String",
+      ],
+      "id": "A String", # The server-generated call set ID, unique across all call sets.
+    }</pre>
 </div>
 
 <div class="method">
@@ -354,28 +354,28 @@
         # 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, string[]> (string key mapping to a list of string values).
-          "a_key": [
-            "",
+            # 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": [
+              "",
+            ],
+          },
+          "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).
+            "A String",
           ],
+          "id": "A String", # The server-generated call set ID, unique across all call sets.
         },
-        "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).
-          "A String",
-        ],
-        "id": "A String", # The server-generated call set ID, unique across all call sets.
-      },
     ],
   }</pre>
 </div>
diff --git a/docs/dyn/genomics_v1.datasets.html b/docs/dyn/genomics_v1.datasets.html
index dc12b87..7b35282 100644
--- a/docs/dyn/genomics_v1.datasets.html
+++ b/docs/dyn/genomics_v1.datasets.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(datasetId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a dataset by ID.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, projectId=None, pageToken=None, x__xgafv=None)</a></code></p>
@@ -96,10 +96,10 @@
   <code><a href="#patch">patch(datasetId, body, updateMask=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a dataset.</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+  <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.</p>
 <p class="toc_element">
   <code><a href="#undelete">undelete(datasetId, body, x__xgafv=None)</a></code></p>
@@ -121,10 +121,10 @@
     # 
     # 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.
-  "name": "A String", # The dataset name.
+  "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
   "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+  "name": "A String", # The dataset name.
 }
 
   x__xgafv: string, V1 error format.
@@ -139,10 +139,10 @@
       #
       # 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.
-    "name": "A String", # The dataset name.
+    "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
     "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "name": "A String", # The dataset name.
   }</pre>
 </div>
 
@@ -203,15 +203,15 @@
       #
       # 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.
-    "name": "A String", # The dataset name.
+    "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
     "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "name": "A String", # The dataset name.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <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.
 
@@ -349,10 +349,10 @@
           #
           # 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.
-        "name": "A String", # The dataset name.
+        "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
         "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+        "name": "A String", # The dataset name.
       },
     ],
   }</pre>
@@ -391,10 +391,10 @@
     # 
     # 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.
-  "name": "A String", # The dataset name.
+  "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
   "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+  "name": "A String", # The dataset name.
 }
 
   updateMask: string, An optional mask specifying which fields to update. At this time, the only
@@ -413,15 +413,15 @@
       #
       # 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.
-    "name": "A String", # The dataset name.
+    "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
     "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "name": "A String", # The dataset name.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <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.
 
@@ -607,7 +607,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
@@ -684,10 +684,10 @@
       #
       # 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.
-    "name": "A String", # The dataset name.
+    "projectId": "A String", # The Google Cloud project ID that this dataset belongs to.
     "createTime": "A String", # The time this dataset was created, in seconds from the epoch.
+    "name": "A String", # The dataset name.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.operations.html b/docs/dyn/genomics_v1.operations.html
index c0c602e..ab6ddf1 100644
--- a/docs/dyn/genomics_v1.operations.html
+++ b/docs/dyn/genomics_v1.operations.html
@@ -249,7 +249,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.
@@ -328,6 +327,7 @@
         "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_v1.readgroupsets.html b/docs/dyn/genomics_v1.readgroupsets.html
index 281e8d3..b011e26 100644
--- a/docs/dyn/genomics_v1.readgroupsets.html
+++ b/docs/dyn/genomics_v1.readgroupsets.html
@@ -80,10 +80,10 @@
 <p class="firstline">Returns the coveragebuckets Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#delete">delete(readGroupSetId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(readGroupSetId, 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=None, body, x__xgafv=None)</a></code></p>
+  <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.</p>
 <p class="toc_element">
   <code><a href="#get">get(readGroupSetId, x__xgafv=None)</a></code></p>
@@ -92,7 +92,7 @@
   <code><a href="#import_">import_(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates read group sets by asynchronously importing the provided</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(readGroupSetId=None, body, updateMask=None, x__xgafv=None)</a></code></p>
+  <code><a href="#patch">patch(readGroupSetId, 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>
@@ -102,7 +102,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(readGroupSetId=None, x__xgafv=None)</code>
+    <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
@@ -133,7 +133,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="export">export(readGroupSetId=None, body, x__xgafv=None)</code>
+    <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
@@ -303,10 +303,10 @@
             # only the first read group in a returned set will have this field
             # populated.
           {
-            "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.
+            "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'.
             "prevProgramId": "A String", # The ID of the program run before this one.
@@ -366,8 +366,10 @@
     The object takes the form of:
 
 { # The read group set import request.
-    "partitionStrategy": "A String", # The partition strategy describes how read groups are partitioned into read
-        # group sets.
+    "referenceSetId": "A String", # The reference set to which the imported read group sets are aligned to, if
+        # any. The reference names of this reference set must be a superset of those
+        # found in the imported file headers. If no reference set id is provided, a
+        # best effort is made to associate with a matching reference set.
     "sourceUris": [ # A list of URIs pointing at [BAM
         # files](https://samtools.github.io/hts-specs/SAMv1.pdf)
         # in Google Cloud Storage.
@@ -380,10 +382,8 @@
         # 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.
   }
@@ -475,7 +475,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(readGroupSetId=None, body, updateMask=None, x__xgafv=None)</code>
+    <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
@@ -525,10 +525,10 @@
           # only the first read group in a returned set will have this field
           # populated.
         {
-          "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.
+          "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'.
           "prevProgramId": "A String", # The ID of the program run before this one.
@@ -611,10 +611,10 @@
             # only the first read group in a returned set will have this field
             # populated.
           {
-            "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.
+            "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'.
             "prevProgramId": "A String", # The ID of the program run before this one.
@@ -725,10 +725,10 @@
                 # only the first read group in a returned set will have this field
                 # populated.
               {
-                "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.
+                "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'.
                 "prevProgramId": "A String", # The ID of the program run before this one.
diff --git a/docs/dyn/genomics_v1.reads.html b/docs/dyn/genomics_v1.reads.html
index 764e2fe..e8c2fb7 100644
--- a/docs/dyn/genomics_v1.reads.html
+++ b/docs/dyn/genomics_v1.reads.html
@@ -243,17 +243,17 @@
           ],
         },
         "duplicateFragment": True or False, # The fragment is a PCR or optical duplicate (SAM flag 0x400).
-        "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.
+        "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.
+        },
         "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
@@ -276,17 +276,17 @@
             # 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.
-        },
+        "supplementaryAlignment": True or False, # Whether this alignment is supplementary. Equivalent to SAM flag 0x800.
+            # Supplementary alignments are used in the representation of a chimeric
+            # alignment. In a chimeric alignment, a read is split into multiple
+            # linear alignments that map to different reference contigs. The first
+            # linear alignment in the read will be designated as the representative
+            # alignment; the remaining linear alignments will be designated as
+            # supplementary alignments. These alignments may have different mapping
+            # quality scores. In each linear alignment in a chimeric alignment, the read
+            # will be hard clipped. The `alignedSequence` and
+            # `alignedQuality` fields in the alignment record will only
+            # represent the bases for its respective linear alignment.
         "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
         "fragmentLength": 42, # The observed length of the fragment, equivalent to TLEN in SAM.
         "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record,
diff --git a/docs/dyn/genomics_v1.references.bases.html b/docs/dyn/genomics_v1.references.bases.html
index 18fb4be..1821ccd 100644
--- a/docs/dyn/genomics_v1.references.bases.html
+++ b/docs/dyn/genomics_v1.references.bases.html
@@ -115,10 +115,10 @@
     "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
         # Provide this value in a subsequent request to return the next page of
         # results. This field will be empty if there aren't any additional results.
+    "sequence": "A String", # A substring of the bases that make up this reference.
     "offset": "A String", # The offset position (0-based) of the given `sequence` from the
         # start of this `Reference`. This value will differ for each page
         # in a paginated request.
-    "sequence": "A String", # A substring of the bases that make up this reference.
   }</pre>
 </div>
 
diff --git a/docs/dyn/genomics_v1.referencesets.html b/docs/dyn/genomics_v1.referencesets.html
index e069794..3caae53 100644
--- a/docs/dyn/genomics_v1.referencesets.html
+++ b/docs/dyn/genomics_v1.referencesets.html
@@ -158,9 +158,8 @@
         # 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.
+    "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
@@ -169,8 +168,9 @@
     ],
     "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).
+    "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.
   }
 
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/genomics_v1.variants.html b/docs/dyn/genomics_v1.variants.html
index 443ec74..566c83f 100644
--- a/docs/dyn/genomics_v1.variants.html
+++ b/docs/dyn/genomics_v1.variants.html
@@ -178,7 +178,8 @@
     },
   ],
   "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-  "id": "A String", # The server-generated variant ID, unique across all variants.
+  "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",
@@ -195,8 +196,7 @@
       # (such as `chr20` or `X`)
   "quality": 3.14, # A measure of how likely this variant is to be real.
       # A higher value is better.
-  "referenceBases": "A String", # The reference bases for this variant. They start at the given
-      # position.
+  "id": "A String", # The server-generated variant ID, unique across all variants.
 }
 
   x__xgafv: string, V1 error format.
@@ -274,7 +274,8 @@
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "id": "A String", # The server-generated variant ID, unique across all variants.
+    "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",
@@ -291,8 +292,7 @@
         # (such as `chr20` or `X`)
     "quality": 3.14, # A measure of how likely this variant is to be real.
         # A higher value is better.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given
-        # position.
+    "id": "A String", # The server-generated variant ID, unique across all variants.
   }</pre>
 </div>
 
@@ -411,7 +411,8 @@
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "id": "A String", # The server-generated variant ID, unique across all variants.
+    "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",
@@ -428,8 +429,7 @@
         # (such as `chr20` or `X`)
     "quality": 3.14, # A measure of how likely this variant is to be real.
         # A higher value is better.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given
-        # position.
+    "id": "A String", # The server-generated variant ID, unique across all variants.
   }</pre>
 </div>
 
@@ -460,8 +460,14 @@
 
 { # The variant data import request.
     "variantSetId": "A String", # Required. The variant set to which variant data should be imported.
-    "format": "A String", # The format of the variant data being imported. If unspecified, defaults to
-        # to `VCF`.
+    "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).
@@ -473,14 +479,8 @@
         # generated by the resulting import job.
       "a_key": "A String",
     },
-    "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".
+    "format": "A String", # The format of the variant data being imported. If unspecified, defaults to
+        # to `VCF`.
   }
 
   x__xgafv: string, V1 error format.
@@ -737,7 +737,8 @@
           },
         ],
         "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-        "id": "A String", # The server-generated variant ID, unique across all variants.
+        "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",
@@ -754,8 +755,7 @@
             # (such as `chr20` or `X`)
         "quality": 3.14, # A measure of how likely this variant is to be real.
             # A higher value is better.
-        "referenceBases": "A String", # The reference bases for this variant. They start at the given
-            # position.
+        "id": "A String", # The server-generated variant ID, unique across all variants.
       },
     ],
     "infoMergeConfig": { # A mapping between info field keys and the InfoMergeOperations to
@@ -867,7 +867,8 @@
     },
   ],
   "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-  "id": "A String", # The server-generated variant ID, unique across all variants.
+  "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",
@@ -884,8 +885,7 @@
       # (such as `chr20` or `X`)
   "quality": 3.14, # A measure of how likely this variant is to be real.
       # A higher value is better.
-  "referenceBases": "A String", # The reference bases for this variant. They start at the given
-      # position.
+  "id": "A String", # The server-generated variant ID, unique across all variants.
 }
 
   x__xgafv: string, V1 error format.
@@ -967,7 +967,8 @@
       },
     ],
     "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-    "id": "A String", # The server-generated variant ID, unique across all variants.
+    "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",
@@ -984,8 +985,7 @@
         # (such as `chr20` or `X`)
     "quality": 3.14, # A measure of how likely this variant is to be real.
         # A higher value is better.
-    "referenceBases": "A String", # The reference bases for this variant. They start at the given
-        # position.
+    "id": "A String", # The server-generated variant ID, unique across all variants.
   }</pre>
 </div>
 
@@ -1018,16 +1018,16 @@
     "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": [ # 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.
+    "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.
-    "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.
+    "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",
     ],
   }
@@ -1112,7 +1112,8 @@
           },
         ],
         "created": "A String", # The date this variant was created, in milliseconds from the epoch.
-        "id": "A String", # The server-generated variant ID, unique across all variants.
+        "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",
@@ -1129,8 +1130,7 @@
             # (such as `chr20` or `X`)
         "quality": 3.14, # A measure of how likely this variant is to be real.
             # A higher value is better.
-        "referenceBases": "A String", # The reference bases for this variant. They start at the given
-            # position.
+        "id": "A String", # The server-generated variant ID, unique across all variants.
       },
     ],
   }</pre>
diff --git a/docs/dyn/genomics_v1.variantsets.html b/docs/dyn/genomics_v1.variantsets.html
index e0b4146..4354c92 100644
--- a/docs/dyn/genomics_v1.variantsets.html
+++ b/docs/dyn/genomics_v1.variantsets.html
@@ -81,7 +81,7 @@
   <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.</p>
 <p class="toc_element">
-  <code><a href="#export">export(variantSetId=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#export">export(variantSetId, 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>
@@ -117,6 +117,7 @@
     # 
     # For more genomics resource definitions, see [Fundamentals of Google
     # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  "description": "A String", # A textual description of this variant set.
   "name": "A String", # User-specified, mutable name.
   "metadata": [ # The metadata associated with this variant set.
     { # Metadata describes a single piece of variant call metadata.
@@ -141,15 +142,6 @@
           # id and key fields are considered equivalent.
     },
   ],
-  "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
@@ -162,7 +154,15 @@
       # 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.
-  "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.
+    },
+  ],
 }
 
   x__xgafv: string, V1 error format.
@@ -178,6 +178,7 @@
       #
       # For more genomics resource definitions, see [Fundamentals of Google
       # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    "description": "A String", # A textual description of this variant set.
     "name": "A String", # User-specified, mutable name.
     "metadata": [ # The metadata associated with this variant set.
       { # Metadata describes a single piece of variant call metadata.
@@ -202,15 +203,6 @@
             # id and key fields are considered equivalent.
       },
     ],
-    "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
@@ -223,7 +215,15 @@
         # 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.
-    "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.
+      },
+    ],
   }</pre>
 </div>
 
@@ -259,7 +259,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="export">export(variantSetId=None, body, x__xgafv=None)</code>
+    <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
@@ -273,18 +273,18 @@
     The object takes the form of:
 
 { # The variant data export request.
-    "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".
+    "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.
       "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.
   }
 
@@ -397,6 +397,7 @@
       #
       # For more genomics resource definitions, see [Fundamentals of Google
       # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    "description": "A String", # A textual description of this variant set.
     "name": "A String", # User-specified, mutable name.
     "metadata": [ # The metadata associated with this variant set.
       { # Metadata describes a single piece of variant call metadata.
@@ -421,15 +422,6 @@
             # id and key fields are considered equivalent.
       },
     ],
-    "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
@@ -442,7 +434,15 @@
         # 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.
-    "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.
+      },
+    ],
   }</pre>
 </div>
 
@@ -464,6 +464,7 @@
     # 
     # For more genomics resource definitions, see [Fundamentals of Google
     # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+  "description": "A String", # A textual description of this variant set.
   "name": "A String", # User-specified, mutable name.
   "metadata": [ # The metadata associated with this variant set.
     { # Metadata describes a single piece of variant call metadata.
@@ -488,15 +489,6 @@
           # id and key fields are considered equivalent.
     },
   ],
-  "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
@@ -509,7 +501,15 @@
       # 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.
-  "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.
+    },
+  ],
 }
 
   updateMask: string, An optional mask specifying which fields to update. Supported fields:
@@ -533,6 +533,7 @@
       #
       # For more genomics resource definitions, see [Fundamentals of Google
       # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+    "description": "A String", # A textual description of this variant set.
     "name": "A String", # User-specified, mutable name.
     "metadata": [ # The metadata associated with this variant set.
       { # Metadata describes a single piece of variant call metadata.
@@ -557,15 +558,6 @@
             # id and key fields are considered equivalent.
       },
     ],
-    "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
@@ -578,7 +570,15 @@
         # 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.
-    "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.
+      },
+    ],
   }</pre>
 </div>
 
@@ -627,6 +627,7 @@
           #
           # For more genomics resource definitions, see [Fundamentals of Google
           # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
+        "description": "A String", # A textual description of this variant set.
         "name": "A String", # User-specified, mutable name.
         "metadata": [ # The metadata associated with this variant set.
           { # Metadata describes a single piece of variant call metadata.
@@ -651,15 +652,6 @@
                 # id and key fields are considered equivalent.
           },
         ],
-        "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
@@ -672,7 +664,15 @@
             # 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.
-        "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.
+          },
+        ],
       },
     ],
   }</pre>
diff --git a/docs/dyn/genomics_v1alpha2.operations.html b/docs/dyn/genomics_v1alpha2.operations.html
index 58407f5..98d2f66 100644
--- a/docs/dyn/genomics_v1alpha2.operations.html
+++ b/docs/dyn/genomics_v1alpha2.operations.html
@@ -249,7 +249,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.
@@ -328,6 +327,7 @@
         "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 183bb9a..75c9eab 100644
--- a/docs/dyn/genomics_v1alpha2.pipelines.html
+++ b/docs/dyn/genomics_v1alpha2.pipelines.html
@@ -78,10 +78,10 @@
   <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</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(pipelineId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(pipelineId, 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=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(pipelineId, 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>
@@ -736,7 +736,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(pipelineId=None, x__xgafv=None)</code>
+    <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.
@@ -765,7 +765,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(pipelineId=None, x__xgafv=None)</code>
+    <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.
@@ -1108,9 +1108,7 @@
     { # 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.
-    "disks": {
-      "a_key": "A String",
-    },
+    "cmd": "A String",
     "machineType": "A String",
     "vars": {
       "a_key": "A String",
@@ -1124,7 +1122,9 @@
       },
     },
     "image": "A String",
-    "cmd": "A String",
+    "disks": {
+      "a_key": "A String",
+    },
     "gcsSources": {
       "a_key": {
         "values": [
@@ -2029,6 +2029,7 @@
 { # 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.
@@ -2036,9 +2037,8 @@
         "description": "A String", # String indicating the type of event
       },
     ],
-    "errorMessage": "A String",
-    "validationToken": "A String",
     "operationId": "A String",
+    "validationToken": "A String",
   }
 
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/iam_v1.projects.serviceAccounts.html b/docs/dyn/iam_v1.projects.serviceAccounts.html
index 95ac18e..5cae7ff 100644
--- a/docs/dyn/iam_v1.projects.serviceAccounts.html
+++ b/docs/dyn/iam_v1.projects.serviceAccounts.html
@@ -80,41 +80,41 @@
 <p class="firstline">Returns the keys Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a ServiceAccount</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a ServiceAccount.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a ServiceAccount.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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=None, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
+  <code><a href="#list">list(name, 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=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#signBlob">signBlob(name, 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="#signJwt">signJwt(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#signJwt">signJwt(name, 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="#testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#update">update(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(name, 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=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Creates a ServiceAccount
 and returns it.
 
@@ -216,7 +216,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a ServiceAccount.
 
 Args:
@@ -246,7 +246,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets a ServiceAccount.
 
 Args:
@@ -302,7 +302,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, x__xgafv=None)</code>
   <pre>Returns the IAM access control policy for a
 ServiceAccount.
 
@@ -396,7 +396,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(name=None, pageToken=None, x__xgafv=None, pageSize=None)</code>
+    <code class="details" id="list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists ServiceAccounts for a project.
 
 Args:
@@ -476,7 +476,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the IAM access control policy for a
 ServiceAccount.
 
@@ -655,7 +655,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="signBlob">signBlob(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="signBlob">signBlob(name, body, x__xgafv=None)</code>
   <pre>Signs a blob using a service account's system-managed private key.
 
 Args:
@@ -686,7 +686,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="signJwt">signJwt(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="signJwt">signJwt(name, 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
@@ -721,7 +721,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <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.
 
@@ -757,7 +757,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(name, body, x__xgafv=None)</code>
   <pre>Updates a ServiceAccount.
 
 Currently, only the following fields are updatable:
diff --git a/docs/dyn/iam_v1.projects.serviceAccounts.keys.html b/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
index 3e7f3e5..00294dc 100644
--- a/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
+++ b/docs/dyn/iam_v1.projects.serviceAccounts.keys.html
@@ -75,20 +75,20 @@
 <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=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a ServiceAccountKey</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a ServiceAccountKey.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name=None, publicKeyType=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name, 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=None, keyTypes=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(name, 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=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Creates a ServiceAccountKey
 and returns it.
 
@@ -133,25 +133,25 @@
       #
       # 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.
     "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey`
         # responses.
-    "validAfterTime": "A String", # The key can be used after this timestamp.
-    "validBeforeTime": "A String", # The key can be used before this timestamp.
     "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.
-    "keyAlgorithm": "A String", # Specifies the algorithm (and possibly key size) for the key.
     "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_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/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=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a ServiceAccountKey.
 
 Args:
@@ -181,7 +181,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, publicKeyType=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, publicKeyType=None, x__xgafv=None)</code>
   <pre>Gets the ServiceAccountKey
 by key id.
 
@@ -218,25 +218,25 @@
       #
       # 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.
     "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey`
         # responses.
-    "validAfterTime": "A String", # The key can be used after this timestamp.
-    "validBeforeTime": "A String", # The key can be used before this timestamp.
     "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.
-    "keyAlgorithm": "A String", # Specifies the algorithm (and possibly key size) for the key.
     "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_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/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=None, keyTypes=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(name, keyTypes=None, x__xgafv=None)</code>
   <pre>Lists ServiceAccountKeys.
 
 Args:
@@ -275,20 +275,20 @@
           #
           # 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.
         "privateKeyData": "A String", # The private key data. Only provided in `CreateServiceAccountKey`
             # responses.
-        "validAfterTime": "A String", # The key can be used after this timestamp.
-        "validBeforeTime": "A String", # The key can be used before this timestamp.
         "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.
-        "keyAlgorithm": "A String", # Specifies the algorithm (and possibly key size) for the key.
         "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_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}/keys/{key}`.
+        "validAfterTime": "A String", # The key can be used after this timestamp.
       },
     ],
   }</pre>
diff --git a/docs/dyn/language_v1.documents.html b/docs/dyn/language_v1.documents.html
index 9a1abf1..b01b350 100644
--- a/docs/dyn/language_v1.documents.html
+++ b/docs/dyn/language_v1.documents.html
@@ -98,7 +98,6 @@
     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.
@@ -119,6 +118,7 @@
           # 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.
@@ -177,7 +177,6 @@
     The object takes the form of:
 
 { # The sentiment analysis request message.
-    "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets.
     "document": { # ################################################################ # # Input document. Currently, `analyzeSentiment` only supports English text
         # (Document.language="EN").
         #
@@ -199,6 +198,7 @@
           # 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 sentence offsets.
   }
 
   x__xgafv: string, V1 error format.
@@ -254,7 +254,6 @@
     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.
@@ -275,6 +274,7 @@
           # 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.
@@ -293,22 +293,6 @@
           "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 # Parts of speech tag for this token.
-            # are as defined in
-            # http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
-          "case": "A String", # The grammatical case.
-          "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.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "proper": "A String", # The grammatical properness.
-          "voice": "A String", # The grammatical voice.
-          "mood": "A String", # The grammatical mood.
-        },
         "dependencyEdge": { # Represents dependency parse tree information for a token. (For more # Dependency tree parse for this token.
             # information on dependency labels, see
             # http://www.aclweb.org/anthology/P13-2017
@@ -319,6 +303,22 @@
               # `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 # Parts of speech tag for this token.
+            # 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.
+          "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.
       },
     ],
@@ -359,12 +359,6 @@
 { # 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.
-    "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.
-      "extractDocumentSentiment": True or False, # Extract document-level sentiment.
-      "extractEntities": True or False, # Extract entities.
-      "extractSyntax": True or False, # Extract syntax information.
-    },
     "document": { # ################################################################ # # Input document.
         #
         # Represents the input to API methods.
@@ -385,6 +379,12 @@
           # details, see https://cloud.google.com/storage/docs/reference-uris.
           # NOTE: Cloud Storage object versioning is not supported.
     },
+    "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.
+      "extractDocumentSentiment": True or False, # Extract document-level sentiment.
+      "extractEntities": True or False, # Extract entities.
+      "extractSyntax": True or False, # Extract syntax information.
+    },
   }
 
   x__xgafv: string, V1 error format.
@@ -405,22 +405,6 @@
           "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 # Parts of speech tag for this token.
-            # are as defined in
-            # http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
-          "case": "A String", # The grammatical case.
-          "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.
-          "reciprocity": "A String", # The grammatical reciprocity.
-          "proper": "A String", # The grammatical properness.
-          "voice": "A String", # The grammatical voice.
-          "mood": "A String", # The grammatical mood.
-        },
         "dependencyEdge": { # Represents dependency parse tree information for a token. (For more # Dependency tree parse for this token.
             # information on dependency labels, see
             # http://www.aclweb.org/anthology/P13-2017
@@ -431,6 +415,22 @@
               # `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 # Parts of speech tag for this token.
+            # 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.
+          "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.
       },
     ],
diff --git a/docs/dyn/language_v1beta1.documents.html b/docs/dyn/language_v1beta1.documents.html
index b7f5625..37ff1bf 100644
--- a/docs/dyn/language_v1beta1.documents.html
+++ b/docs/dyn/language_v1beta1.documents.html
@@ -98,6 +98,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.
@@ -118,7 +119,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.
@@ -177,6 +177,8 @@
     The object takes the form of:
 
 { # The sentiment analysis request message.
+    "encodingType": "A String", # The encoding type used by the API to calculate sentence offsets for the
+        # sentence sentiment.
     "document": { # ################################################################ # # Input document. Currently, `analyzeSentiment` only supports English text
         # (Document.language="EN").
         #
@@ -198,8 +200,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 sentence offsets for the
-        # sentence sentiment.
   }
 
   x__xgafv: string, V1 error format.
@@ -216,11 +216,11 @@
       "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
           # favor of score. Please refer to our documentation at
           # https://cloud.google.com/natural-language/docs for more information.
-      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-          # (positive sentiment).
       "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
           # the absolute magnitude of sentiment regardless of score (positive or
           # negative).
+      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+          # (positive sentiment).
     },
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
@@ -238,11 +238,11 @@
           "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
               # favor of score. Please refer to our documentation at
               # https://cloud.google.com/natural-language/docs for more information.
-          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-              # (positive sentiment).
           "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
               # the absolute magnitude of sentiment regardless of score (positive or
               # negative).
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
         },
       },
     ],
@@ -260,6 +260,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.
@@ -280,7 +281,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.
@@ -294,11 +294,7 @@
     { # The syntax analysis response message.
     "tokens": [ # Tokens, along with their syntactic information, in the input document.
       { # Represents the smallest syntactic building block of the text.
-        "text": { # Represents an output piece of text. # The token text.
-          "content": "A String", # The content of the output text.
-          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
-              # document according to the EncodingType specified in the API request.
-        },
+        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
         "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.
@@ -309,19 +305,23 @@
         },
         "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
           "case": "A String", # The grammatical case.
-          "aspect": "A String", # The grammatical aspect.
+          "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.
-          "reciprocity": "A String", # The grammatical reciprocity.
+          "aspect": "A String", # The grammatical aspect.
           "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.
+        "text": { # Represents an output piece of text. # The token text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
+        },
       },
     ],
     "language": "A String", # The language of the text, which will be the same as the language specified
@@ -341,11 +341,11 @@
           "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
               # favor of score. Please refer to our documentation at
               # https://cloud.google.com/natural-language/docs for more information.
-          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-              # (positive sentiment).
           "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
               # the absolute magnitude of sentiment regardless of score (positive or
               # negative).
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
         },
       },
     ],
@@ -405,11 +405,7 @@
         # Populated if the user enables
         # AnnotateTextRequest.Features.extract_syntax.
       { # Represents the smallest syntactic building block of the text.
-        "text": { # Represents an output piece of text. # The token text.
-          "content": "A String", # The content of the output text.
-          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
-              # document according to the EncodingType specified in the API request.
-        },
+        "lemma": "A String", # [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
         "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.
@@ -420,19 +416,23 @@
         },
         "partOfSpeech": { # Represents part of speech information for a token. # Parts of speech tag for this token.
           "case": "A String", # The grammatical case.
-          "aspect": "A String", # The grammatical aspect.
+          "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.
-          "reciprocity": "A String", # The grammatical reciprocity.
+          "aspect": "A String", # The grammatical aspect.
           "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.
+        "text": { # Represents an output piece of text. # The token text.
+          "content": "A String", # The content of the output text.
+          "beginOffset": 42, # The API calculates the beginning offset of the content in the original
+              # document according to the EncodingType specified in the API request.
+        },
       },
     ],
     "entities": [ # Entities, along with their semantic information, in the input document.
@@ -475,11 +475,11 @@
       "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
           # favor of score. Please refer to our documentation at
           # https://cloud.google.com/natural-language/docs for more information.
-      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-          # (positive sentiment).
       "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
           # the absolute magnitude of sentiment regardless of score (positive or
           # negative).
+      "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+          # (positive sentiment).
     },
     "language": "A String", # The language of the text, which will be the same as the language specified
         # in the request or, if not specified, the automatically-detected language.
@@ -499,11 +499,11 @@
           "polarity": 3.14, # DEPRECATED FIELD - This field is being deprecated in
               # favor of score. Please refer to our documentation at
               # https://cloud.google.com/natural-language/docs for more information.
-          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
-              # (positive sentiment).
           "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents
               # the absolute magnitude of sentiment regardless of score (positive or
               # negative).
+          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0
+              # (positive sentiment).
         },
       },
     ],
diff --git a/docs/dyn/logging_v2.billingAccounts.logs.html b/docs/dyn/logging_v2.billingAccounts.logs.html
index 83729a1..2e9c8fd 100644
--- a/docs/dyn/logging_v2.billingAccounts.logs.html
+++ b/docs/dyn/logging_v2.billingAccounts.logs.html
@@ -75,17 +75,17 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.billingAccounts.html">billingAccounts</a> . <a href="logging_v2.billingAccounts.logs.html">logs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(logName, 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. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></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>
+    <code class="details" id="delete">delete(logName, x__xgafv=None)</code>
   <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:
@@ -112,7 +112,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
@@ -122,12 +122,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_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:
diff --git a/docs/dyn/logging_v2.billingAccounts.sinks.html b/docs/dyn/logging_v2.billingAccounts.sinks.html
index 97eff5f..0b5e887 100644
--- a/docs/dyn/logging_v2.billingAccounts.sinks.html
+++ b/docs/dyn/logging_v2.billingAccounts.sinks.html
@@ -75,26 +75,26 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.billingAccounts.html">billingAccounts</a> . <a href="logging_v2.billingAccounts.sinks.html">sinks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.</p>
 <p class="toc_element">
-  <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</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, 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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.
 
 Args:
@@ -148,7 +148,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(sinkName, x__xgafv=None)</code>
   <pre>Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.
 
 Args:
@@ -175,7 +175,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(sinkName, x__xgafv=None)</code>
   <pre>Gets a sink.
 
 Args:
@@ -210,7 +210,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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
@@ -266,7 +266,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.
 
 Args:
diff --git a/docs/dyn/logging_v2.entries.html b/docs/dyn/logging_v2.entries.html
index 5735415..cb29077 100644
--- a/docs/dyn/logging_v2.entries.html
+++ b/docs/dyn/logging_v2.entries.html
@@ -124,20 +124,23 @@
       { # 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.
-          "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.
+          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
           "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)".
           "requestSize": "A String", # The size of the HTTP request message in bytes, including the request headers and the request body.
           "responseSize": "A String", # The size of the HTTP response message sent back to the client, in bytes, including the response headers and the response body.
         },
+        "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
+          "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": # Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error.
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
@@ -147,13 +150,13 @@
           },
           "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".
         },
+        "severity": "A String", # Optional. 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).
-        "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 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",
+        "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
+        "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.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
@@ -163,9 +166,7 @@
             # "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.
@@ -177,7 +178,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.
       },
     ],
   }</pre>
@@ -206,16 +206,6 @@
     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": {
@@ -229,24 +219,37 @@
       },
       "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, 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 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.
-          "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.
+          "cacheHit": True or False, # Whether or not an entity was served from cache (with or without validation).
           "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)".
           "requestSize": "A String", # The size of the HTTP request message in bytes, including the request headers and the request body.
           "responseSize": "A String", # The size of the HTTP response message sent back to the client, in bytes, including the response headers and the response body.
         },
+        "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
+          "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": # Required. The monitored resource associated with this log entry. Example: a log entry that reports a database error would be associated with the monitored resource designating the particular database that reported the error.
             # { "type": "gce_instance",
             #   "labels": { "instance_id": "12345678901234",
@@ -256,13 +259,13 @@
           },
           "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".
         },
+        "severity": "A String", # Optional. 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).
-        "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 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",
+        "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
+        "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.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
@@ -272,9 +275,7 @@
             # "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.
@@ -286,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 9b2db43..410c059 100644
--- a/docs/dyn/logging_v2.folders.logs.html
+++ b/docs/dyn/logging_v2.folders.logs.html
@@ -75,17 +75,17 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.folders.html">folders</a> . <a href="logging_v2.folders.logs.html">logs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(logName, 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. 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>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></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>
+    <code class="details" id="delete">delete(logName, x__xgafv=None)</code>
   <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:
@@ -112,7 +112,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, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
@@ -122,12 +122,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_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:
diff --git a/docs/dyn/logging_v2.folders.sinks.html b/docs/dyn/logging_v2.folders.sinks.html
index 11ea918..f2ce85d 100644
--- a/docs/dyn/logging_v2.folders.sinks.html
+++ b/docs/dyn/logging_v2.folders.sinks.html
@@ -75,26 +75,26 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.folders.html">folders</a> . <a href="logging_v2.folders.sinks.html">sinks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.</p>
 <p class="toc_element">
-  <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, 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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.
 
 Args:
@@ -148,7 +148,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(sinkName, x__xgafv=None)</code>
   <pre>Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.
 
 Args:
@@ -175,7 +175,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(sinkName, x__xgafv=None)</code>
   <pre>Gets a sink.
 
 Args:
@@ -210,7 +210,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
@@ -220,12 +220,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_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:
@@ -266,7 +266,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.
 
 Args:
diff --git a/docs/dyn/logging_v2.monitoredResourceDescriptors.html b/docs/dyn/logging_v2.monitoredResourceDescriptors.html
index 1b5eed4..66cacbf 100644
--- a/docs/dyn/logging_v2.monitoredResourceDescriptors.html
+++ b/docs/dyn/logging_v2.monitoredResourceDescriptors.html
@@ -100,7 +100,7 @@
     "nextPageToken": "A String", # If there might be more results than those appearing 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.
     "resourceDescriptors": [ # A list of resource descriptors.
       { # 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.
+        "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".
         "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.
@@ -108,7 +108,7 @@
             "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".
+        "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.
         "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.
       },
diff --git a/docs/dyn/logging_v2.organizations.logs.html b/docs/dyn/logging_v2.organizations.logs.html
index c0026b8..c1b38b4 100644
--- a/docs/dyn/logging_v2.organizations.logs.html
+++ b/docs/dyn/logging_v2.organizations.logs.html
@@ -75,17 +75,17 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.organizations.html">organizations</a> . <a href="logging_v2.organizations.logs.html">logs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(logName, 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. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></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>
+    <code class="details" id="delete">delete(logName, x__xgafv=None)</code>
   <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:
@@ -112,7 +112,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
diff --git a/docs/dyn/logging_v2.organizations.sinks.html b/docs/dyn/logging_v2.organizations.sinks.html
index e75710e..50d3774 100644
--- a/docs/dyn/logging_v2.organizations.sinks.html
+++ b/docs/dyn/logging_v2.organizations.sinks.html
@@ -75,26 +75,26 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.organizations.html">organizations</a> . <a href="logging_v2.organizations.sinks.html">sinks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.</p>
 <p class="toc_element">
-  <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, 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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.
 
 Args:
@@ -148,7 +148,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(sinkName, x__xgafv=None)</code>
   <pre>Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.
 
 Args:
@@ -175,7 +175,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(sinkName, x__xgafv=None)</code>
   <pre>Gets a sink.
 
 Args:
@@ -210,7 +210,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists sinks.
 
 Args:
@@ -220,12 +220,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_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:
@@ -266,7 +266,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.
 
 Args:
diff --git a/docs/dyn/logging_v2.projects.logs.html b/docs/dyn/logging_v2.projects.logs.html
index 75ed366..7d4ff2f 100644
--- a/docs/dyn/logging_v2.projects.logs.html
+++ b/docs/dyn/logging_v2.projects.logs.html
@@ -75,17 +75,17 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.projects.html">projects</a> . <a href="logging_v2.projects.logs.html">logs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(logName, 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. 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>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></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>
+    <code class="details" id="delete">delete(logName, x__xgafv=None)</code>
   <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:
@@ -112,7 +112,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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
diff --git a/docs/dyn/logging_v2.projects.metrics.html b/docs/dyn/logging_v2.projects.metrics.html
index a625799..0491d7c 100644
--- a/docs/dyn/logging_v2.projects.metrics.html
+++ b/docs/dyn/logging_v2.projects.metrics.html
@@ -75,26 +75,26 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.projects.html">projects</a> . <a href="logging_v2.projects.metrics.html">metrics</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a logs-based metric.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(metricName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(metricName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a logs-based metric.</p>
 <p class="toc_element">
-  <code><a href="#get">get(metricName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(metricName, 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, 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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(metricName=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(metricName, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates or updates a logs-based metric.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
   <pre>Creates a logs-based metric.
 
 Args:
@@ -132,7 +132,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(metricName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(metricName, x__xgafv=None)</code>
   <pre>Deletes a logs-based metric.
 
 Args:
@@ -156,7 +156,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(metricName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(metricName, x__xgafv=None)</code>
   <pre>Gets a logs-based metric.
 
 Args:
@@ -182,19 +182,19 @@
 </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, 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:
@@ -229,7 +229,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(metricName=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(metricName, body, x__xgafv=None)</code>
   <pre>Creates or updates a logs-based metric.
 
 Args:
diff --git a/docs/dyn/logging_v2.projects.sinks.html b/docs/dyn/logging_v2.projects.sinks.html
index 808ea26..107ce5e 100644
--- a/docs/dyn/logging_v2.projects.sinks.html
+++ b/docs/dyn/logging_v2.projects.sinks.html
@@ -75,26 +75,26 @@
 <h1><a href="logging_v2.html">Stackdriver Logging API</a> . <a href="logging_v2.projects.html">projects</a> . <a href="logging_v2.projects.sinks.html">sinks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.</p>
 <p class="toc_element">
-  <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.
 
 Args:
@@ -148,7 +148,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(sinkName, x__xgafv=None)</code>
   <pre>Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.
 
 Args:
@@ -175,7 +175,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(sinkName, x__xgafv=None)</code>
   <pre>Gets a sink.
 
 Args:
@@ -210,7 +210,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists sinks.
 
 Args:
@@ -266,7 +266,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.
 
 Args:
diff --git a/docs/dyn/logging_v2beta1.billingAccounts.logs.html b/docs/dyn/logging_v2beta1.billingAccounts.logs.html
index 9801413..dfa0f66 100644
--- a/docs/dyn/logging_v2beta1.billingAccounts.logs.html
+++ b/docs/dyn/logging_v2beta1.billingAccounts.logs.html
@@ -75,17 +75,17 @@
 <h1><a href="logging_v2beta1.html">Stackdriver Logging API</a> . <a href="logging_v2beta1.billingAccounts.html">billingAccounts</a> . <a href="logging_v2beta1.billingAccounts.logs.html">logs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(logName, 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. Log entries written shortly before the delete operation might not be deleted.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></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>
+    <code class="details" id="delete">delete(logName, x__xgafv=None)</code>
   <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:
@@ -112,7 +112,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
@@ -122,12 +122,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_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:
diff --git a/docs/dyn/logging_v2beta1.entries.html b/docs/dyn/logging_v2beta1.entries.html
index 64f1792..2d89e95 100644
--- a/docs/dyn/logging_v2beta1.entries.html
+++ b/docs/dyn/logging_v2beta1.entries.html
@@ -124,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.
-          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
+          "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.
           "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.
+          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
           "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)".
@@ -154,9 +154,7 @@
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "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.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
@@ -166,7 +164,9 @@
             # "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.
-        "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.
+        "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.
+        },
         "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.
@@ -206,6 +206,16 @@
     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": {
@@ -219,28 +229,18 @@
       },
       "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, 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 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.
-          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
+          "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.
           "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.
+          "latency": "A String", # The request processing latency on the server, from the time the request was received until the response was sent.
           "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)".
@@ -263,9 +263,7 @@
         "labels": { # Optional. A set of user-defined (key, value) data that provides additional information about the log entry.
           "a_key": "A String",
         },
-        "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.
         "jsonPayload": { # The log entry payload, represented as a structure that is expressed as a JSON object.
           "a_key": "", # Properties of the object.
         },
@@ -275,7 +273,9 @@
             # "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.
-        "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.
+        "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.
+        },
         "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.
diff --git a/docs/dyn/logging_v2beta1.organizations.logs.html b/docs/dyn/logging_v2beta1.organizations.logs.html
index 23b0b7b..691d50f 100644
--- a/docs/dyn/logging_v2beta1.organizations.logs.html
+++ b/docs/dyn/logging_v2beta1.organizations.logs.html
@@ -75,17 +75,17 @@
 <h1><a href="logging_v2beta1.html">Stackdriver Logging API</a> . <a href="logging_v2beta1.organizations.html">organizations</a> . <a href="logging_v2beta1.organizations.logs.html">logs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(logName, 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. 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>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></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>
+    <code class="details" id="delete">delete(logName, x__xgafv=None)</code>
   <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:
@@ -112,7 +112,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, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
@@ -122,12 +122,12 @@
 "billingAccounts/[BILLING_ACCOUNT_ID]"
 "folders/[FOLDER_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:
diff --git a/docs/dyn/logging_v2beta1.projects.logs.html b/docs/dyn/logging_v2beta1.projects.logs.html
index a047d54..ba6ba0b 100644
--- a/docs/dyn/logging_v2beta1.projects.logs.html
+++ b/docs/dyn/logging_v2beta1.projects.logs.html
@@ -75,17 +75,17 @@
 <h1><a href="logging_v2beta1.html">Stackdriver Logging API</a> . <a href="logging_v2beta1.projects.html">projects</a> . <a href="logging_v2beta1.projects.logs.html">logs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(logName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(logName, 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. 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>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></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>
+    <code class="details" id="delete">delete(logName, x__xgafv=None)</code>
   <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:
@@ -112,7 +112,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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
 
 Args:
diff --git a/docs/dyn/logging_v2beta1.projects.metrics.html b/docs/dyn/logging_v2beta1.projects.metrics.html
index ab01ef8..27948c6 100644
--- a/docs/dyn/logging_v2beta1.projects.metrics.html
+++ b/docs/dyn/logging_v2beta1.projects.metrics.html
@@ -75,26 +75,26 @@
 <h1><a href="logging_v2beta1.html">Stackdriver Logging API</a> . <a href="logging_v2beta1.projects.html">projects</a> . <a href="logging_v2beta1.projects.metrics.html">metrics</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a logs-based metric.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(metricName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(metricName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a logs-based metric.</p>
 <p class="toc_element">
-  <code><a href="#get">get(metricName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(metricName, 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, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, 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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(metricName=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(metricName, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates or updates a logs-based metric.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
   <pre>Creates a logs-based metric.
 
 Args:
@@ -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.
-    "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.
+    "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".
   }
 
   x__xgafv: string, V1 error format.
@@ -126,13 +126,13 @@
           # "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.
-      "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.
+      "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".
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(metricName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(metricName, x__xgafv=None)</code>
   <pre>Deletes a logs-based metric.
 
 Args:
@@ -156,7 +156,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(metricName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(metricName, x__xgafv=None)</code>
   <pre>Gets a logs-based metric.
 
 Args:
@@ -176,13 +176,13 @@
           # "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.
-      "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.
+      "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".
     }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists logs-based metrics.
 
 Args:
@@ -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.
-          "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.
+          "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".
         },
     ],
     "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.
@@ -229,7 +229,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(metricName=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(metricName, body, x__xgafv=None)</code>
   <pre>Creates or updates a logs-based metric.
 
 Args:
@@ -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.
-    "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.
+    "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".
   }
 
   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.
-      "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.
+      "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".
     }</pre>
 </div>
 
diff --git a/docs/dyn/logging_v2beta1.projects.sinks.html b/docs/dyn/logging_v2beta1.projects.sinks.html
index d4099fe..12c8179 100644
--- a/docs/dyn/logging_v2beta1.projects.sinks.html
+++ b/docs/dyn/logging_v2beta1.projects.sinks.html
@@ -75,26 +75,26 @@
 <h1><a href="logging_v2beta1.html">Stackdriver Logging API</a> . <a href="logging_v2beta1.projects.html">projects</a> . <a href="logging_v2beta1.projects.sinks.html">sinks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.</p>
 <p class="toc_element">
-  <code><a href="#get">get(sinkName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(sinkName, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a sink.</p>
 <p class="toc_element">
-  <code><a href="#list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless the current time is outside the sink's start and end times or the sink's writer_identity is not permitted to write to the destination. A sink can export log entries only from the resource owning the sink.
 
 Args:
@@ -148,7 +148,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(sinkName, x__xgafv=None)</code>
   <pre>Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.
 
 Args:
@@ -175,7 +175,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(sinkName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(sinkName, x__xgafv=None)</code>
   <pre>Gets a sink.
 
 Args:
@@ -210,7 +210,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists sinks.
 
 Args:
@@ -266,7 +266,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(sinkName=None, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
+    <code class="details" id="update">update(sinkName, body, uniqueWriterIdentity=None, x__xgafv=None)</code>
   <pre>Updates a sink. If the named sink doesn't exist, then this method is identical to sinks.create. If the named sink does exist, then this method replaces the following fields in the existing sink with values from the new sink: destination, filter, output_version_format, start_time, and end_time. The updated filter might also have a new writer_identity; see the unique_writer_identity field.
 
 Args:
diff --git a/docs/dyn/manufacturers_v1.accounts.products.html b/docs/dyn/manufacturers_v1.accounts.products.html
index 3bbc180..4c747bc 100644
--- a/docs/dyn/manufacturers_v1.accounts.products.html
+++ b/docs/dyn/manufacturers_v1.accounts.products.html
@@ -75,17 +75,17 @@
 <h1><a href="manufacturers_v1.html">Manufacturer Center API</a> . <a href="manufacturers_v1.accounts.html">accounts</a> . <a href="manufacturers_v1.accounts.products.html">products</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#get">get(parent=None, name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(parent, name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the product from a Manufacturer Center account, including product</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, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists all the products in a Manufacturer Center account.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(parent=None, name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(parent, name, x__xgafv=None)</code>
   <pre>Gets the product from a Manufacturer Center account, including product
 issues.
 
@@ -120,6 +120,13 @@
         # @OutputOnly
       "A String",
     ],
+    "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
+        # (for example, en).
+        # @OutputOnly
+    "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
+        #
+        # `account_id` - The ID of the Manufacturer Center account.
+        # @OutputOnly
     "name": "A String", # Name in the format `{target_country}:{content_language}:{product_id}`.
         #
         # `target_country`   - The target country of the product as a CLDR territory
@@ -131,10 +138,6 @@
         # `product_id`     -   The ID of the product. For more information, see
         #                      https://support.google.com/manufacturers/answer/6124116#id.
         # @OutputOnly
-    "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
-        #
-        # `account_id` - The ID of the Manufacturer Center account.
-        # @OutputOnly
     "manuallyProvidedAttributes": { # Attributes of the product. For more information, see # Attributes of the product provided manually via the Manufacturer Center UI.
         # @OutputOnly
         # https://support.google.com/manufacturers/answer/6124116.
@@ -516,9 +519,6 @@
       "ageGroup": "A String", # The target age group of the product. For more information, see
           # https://support.google.com/manufacturers/answer/6124116#agegroup.
     },
-    "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
-        # (for example, en).
-        # @OutputOnly
     "issues": [ # A server-generated list of issues associated with the product.
         # @OutputOnly
       { # Product issue.
@@ -539,7 +539,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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists all the products in a Manufacturer Center account.
 
 Args:
@@ -569,6 +569,13 @@
             # @OutputOnly
           "A String",
         ],
+        "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
+            # (for example, en).
+            # @OutputOnly
+        "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
+            #
+            # `account_id` - The ID of the Manufacturer Center account.
+            # @OutputOnly
         "name": "A String", # Name in the format `{target_country}:{content_language}:{product_id}`.
             #
             # `target_country`   - The target country of the product as a CLDR territory
@@ -580,10 +587,6 @@
             # `product_id`     -   The ID of the product. For more information, see
             #                      https://support.google.com/manufacturers/answer/6124116#id.
             # @OutputOnly
-        "parent": "A String", # Parent ID in the format `accounts/{account_id}`.
-            #
-            # `account_id` - The ID of the Manufacturer Center account.
-            # @OutputOnly
         "manuallyProvidedAttributes": { # Attributes of the product. For more information, see # Attributes of the product provided manually via the Manufacturer Center UI.
             # @OutputOnly
             # https://support.google.com/manufacturers/answer/6124116.
@@ -965,9 +968,6 @@
           "ageGroup": "A String", # The target age group of the product. For more information, see
               # https://support.google.com/manufacturers/answer/6124116#agegroup.
         },
-        "contentLanguage": "A String", # The content language of the product as a two-letter ISO 639-1 language code
-            # (for example, en).
-            # @OutputOnly
         "issues": [ # A server-generated list of issues associated with the product.
             # @OutputOnly
           { # Product issue.
diff --git a/docs/dyn/mirror_v1.settings.html b/docs/dyn/mirror_v1.settings.html
index f0d5fce..ede0afd 100644
--- a/docs/dyn/mirror_v1.settings.html
+++ b/docs/dyn/mirror_v1.settings.html
@@ -75,11 +75,11 @@
 <h1><a href="mirror_v1.html">Google Mirror API</a> . <a href="mirror_v1.settings.html">settings</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#get">get(id=None)</a></code></p>
+  <code><a href="#get">get(id)</a></code></p>
 <p class="firstline">Gets a single setting by ID.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(id=None)</code>
+    <code class="details" id="get">get(id)</code>
   <pre>Gets a single setting by ID.
 
 Args:
diff --git a/docs/dyn/ml_v1.projects.html b/docs/dyn/ml_v1.projects.html
index f228e04..0217711 100644
--- a/docs/dyn/ml_v1.projects.html
+++ b/docs/dyn/ml_v1.projects.html
@@ -90,14 +90,14 @@
 <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>
+  <code><a href="#getConfig">getConfig(name, 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>
+  <code><a href="#predict">predict(name, 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>
+    <code class="details" id="getConfig">getConfig(name, 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
@@ -122,7 +122,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="predict">predict(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="predict">predict(name, body, x__xgafv=None)</code>
   <pre>Performs prediction on the data in the request.
 
 **** REMOVE FROM GENERATED DOCUMENTATION
diff --git a/docs/dyn/ml_v1.projects.jobs.html b/docs/dyn/ml_v1.projects.jobs.html
index 89ffc72..abbb92d 100644
--- a/docs/dyn/ml_v1.projects.jobs.html
+++ b/docs/dyn/ml_v1.projects.jobs.html
@@ -75,23 +75,23 @@
 <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>
+  <code><a href="#cancel">cancel(name, 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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#get">get(name, 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>
+  <code><a href="#list">list(parent, 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>
+    <code class="details" id="cancel">cancel(name, body, x__xgafv=None)</code>
   <pre>Cancels a running job.
 
 Args:
@@ -125,7 +125,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
   <pre>Creates a training or a batch prediction job.
 
 Args:
@@ -136,11 +136,11 @@
     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.
+      "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+      "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
       "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
@@ -163,8 +163,37 @@
           },
         },
       ],
-      "consumedMLUnits": 3.14, # The amount of ML units consumed by the 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.
+    },
+    "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
@@ -243,9 +272,9 @@
             "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`.
-            "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.
             "discreteValues": [ # Required if type is `DISCRETE`.
                 # A list of feasible points.
                 # The list should be in strictly increasing order. For instance, this
@@ -255,9 +284,9 @@
             ],
             "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                 # a HyperparameterSpec message. E.g., "learning_rate".
-            "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",
+            ],
             "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.
@@ -313,35 +342,6 @@
           # 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.
@@ -361,11 +361,11 @@
   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.
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
         "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
@@ -388,8 +388,37 @@
             },
           },
         ],
-        "consumedMLUnits": 3.14, # The amount of ML units consumed by the 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.
+      },
+      "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
@@ -468,9 +497,9 @@
               "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`.
-              "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.
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -480,9 +509,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "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",
+              ],
               "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.
@@ -538,35 +567,6 @@
             # 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.
@@ -579,7 +579,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Describes a job.
 
 Args:
@@ -595,11 +595,11 @@
   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.
+        "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
         "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
@@ -622,8 +622,37 @@
             },
           },
         ],
-        "consumedMLUnits": 3.14, # The amount of ML units consumed by the 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.
+      },
+      "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
@@ -702,9 +731,9 @@
               "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`.
-              "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.
               "discreteValues": [ # Required if type is `DISCRETE`.
                   # A list of feasible points.
                   # The list should be in strictly increasing order. For instance, this
@@ -714,9 +743,9 @@
               ],
               "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                   # a HyperparameterSpec message. E.g., "learning_rate".
-              "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",
+              ],
               "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.
@@ -772,35 +801,6 @@
             # 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.
@@ -813,7 +813,7 @@
 </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, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the jobs in the project.
 
 Args:
@@ -843,11 +843,11 @@
         # 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.
+            "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
+            "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
             "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
@@ -870,8 +870,37 @@
                 },
               },
             ],
-            "consumedMLUnits": 3.14, # The amount of ML units consumed by the 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.
+          },
+          "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
@@ -950,9 +979,9 @@
                   "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`.
-                  "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.
                   "discreteValues": [ # Required if type is `DISCRETE`.
                       # A list of feasible points.
                       # The list should be in strictly increasing order. For instance, this
@@ -962,9 +991,9 @@
                   ],
                   "parameterName": "A String", # Required. The parameter name must be unique amongst all ParameterConfigs in
                       # a HyperparameterSpec message. E.g., "learning_rate".
-                  "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",
+                  ],
                   "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.
@@ -1020,35 +1049,6 @@
                 # 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.
diff --git a/docs/dyn/ml_v1.projects.models.html b/docs/dyn/ml_v1.projects.models.html
index 1ddb867..5ace172 100644
--- a/docs/dyn/ml_v1.projects.models.html
+++ b/docs/dyn/ml_v1.projects.models.html
@@ -80,23 +80,23 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#delete">delete(name, 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>
+  <code><a href="#get">get(name, 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>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=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>
+    <code class="details" id="create">create(parent, 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
@@ -136,9 +136,7 @@
         # 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-engine/reference/rest/v1/projects.models.versions/list).
-      "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.
+      "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
@@ -169,14 +167,16 @@
           #
           # You can change the default version by calling
           # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-      "description": "A String", # Optional. The description specified for the version when it was created.
+      "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.
     },
-    "description": "A String", # Optional. The description specified for the model when it was created.
-    "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
-        # Default is false.
     "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.
@@ -213,9 +213,7 @@
           # 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-engine/reference/rest/v1/projects.models.versions/list).
-        "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.
+        "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
@@ -246,19 +244,21 @@
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "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.
       },
-      "description": "A String", # Optional. The description specified for the model when it was created.
-      "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
-          # Default is false.
       "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>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a model.
 
 You can only delete a model if there are no versions in it. You can delete
@@ -279,15 +279,6 @@
 
     { # 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
@@ -298,6 +289,15 @@
         # `TakeSnapshotResponse`.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "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.
     "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`.
@@ -368,7 +368,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, 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).
@@ -411,9 +411,7 @@
           # 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-engine/reference/rest/v1/projects.models.versions/list).
-        "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.
+        "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
@@ -444,19 +442,21 @@
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "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.
       },
-      "description": "A String", # Optional. The description specified for the model when it was created.
-      "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
-          # Default is false.
       "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>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the models in a project.
 
 Each project can contain multiple models, and each model can have multiple
@@ -466,6 +466,11 @@
   parent: string, Required. The name of the project whose models are to be listed.
 
 Authorization: requires `Viewer` role on the specified project. (required)
+  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.
   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
@@ -474,16 +479,13 @@
     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.
             #
@@ -511,9 +513,7 @@
               # 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-engine/reference/rest/v1/projects.models.versions/list).
-            "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.
+            "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
@@ -544,18 +544,18 @@
                 #
                 # You can change the default version by calling
                 # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-            "description": "A String", # Optional. The description specified for the version when it was created.
+            "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.
           },
-          "description": "A String", # Optional. The description specified for the model when it was created.
-          "onlinePredictionLogging": True or False, # Optional. If true, enables StackDriver Logging for online prediction.
-              # Default is false.
           "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_v1.projects.models.versions.html b/docs/dyn/ml_v1.projects.models.versions.html
index 99553f7..aad4165 100644
--- a/docs/dyn/ml_v1.projects.models.versions.html
+++ b/docs/dyn/ml_v1.projects.models.versions.html
@@ -75,26 +75,26 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#delete">delete(name, 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>
+  <code><a href="#get">get(name, 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, 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>
 <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>
+  <code><a href="#setDefault">setDefault(name, 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>
+    <code class="details" id="create">create(parent, 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
@@ -117,9 +117,7 @@
     # 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-engine/reference/rest/v1/projects.models.versions/list).
-  "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.
+  "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
@@ -150,7 +148,9 @@
       # 
       # You can change the default version by calling
       # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-  "description": "A String", # Optional. The description specified for the version when it was created.
+  "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.
@@ -163,15 +163,6 @@
 
     { # 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
@@ -182,6 +173,15 @@
         # `TakeSnapshotResponse`.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "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.
     "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`.
@@ -252,7 +252,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a model version.
 
 Each model can have multiple versions deployed and in use at any given
@@ -277,15 +277,6 @@
 
     { # 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
@@ -296,6 +287,15 @@
         # `TakeSnapshotResponse`.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "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.
     "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`.
@@ -366,7 +366,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets information about a model version.
 
 Models can have multiple versions. You can call
@@ -392,9 +392,7 @@
       # 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-engine/reference/rest/v1/projects.models.versions/list).
-    "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.
+    "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
@@ -425,12 +423,14 @@
         #
         # You can change the default version by calling
         # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-    "description": "A String", # Optional. The description specified for the version when it was created.
+    "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>
+    <code class="details" id="list">list(parent, 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
@@ -441,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
@@ -449,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:
@@ -468,9 +468,7 @@
           # 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-engine/reference/rest/v1/projects.models.versions/list).
-        "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.
+        "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
@@ -501,7 +499,9 @@
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "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>
@@ -522,7 +522,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setDefault">setDefault(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="setDefault">setDefault(name, 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
@@ -558,9 +558,7 @@
       # 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-engine/reference/rest/v1/projects.models.versions/list).
-    "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.
+    "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
@@ -591,7 +589,9 @@
         #
         # You can change the default version by calling
         # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1/projects.models.versions/setDefault).
-    "description": "A String", # Optional. The description specified for the version when it was created.
+    "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>
 
diff --git a/docs/dyn/ml_v1.projects.operations.html b/docs/dyn/ml_v1.projects.operations.html
index 3d1bd3c..be892da 100644
--- a/docs/dyn/ml_v1.projects.operations.html
+++ b/docs/dyn/ml_v1.projects.operations.html
@@ -172,15 +172,6 @@
 
     { # 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
@@ -191,6 +182,15 @@
         # `TakeSnapshotResponse`.
       "a_key": "", # Properties of the object. Contains field @type with type URL.
     },
+    "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.
     "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`.
@@ -285,15 +285,6 @@
     "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
@@ -304,6 +295,15 @@
             # `TakeSnapshotResponse`.
           "a_key": "", # Properties of the object. Contains field @type with type URL.
         },
+        "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.
         "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`.
diff --git a/docs/dyn/ml_v1beta1.projects.html b/docs/dyn/ml_v1beta1.projects.html
index 677fdd3..aec1d5c 100644
--- a/docs/dyn/ml_v1beta1.projects.html
+++ b/docs/dyn/ml_v1beta1.projects.html
@@ -90,14 +90,14 @@
 <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>
+  <code><a href="#getConfig">getConfig(name, 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>
+  <code><a href="#predict">predict(name, 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>
+    <code class="details" id="getConfig">getConfig(name, 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
@@ -122,7 +122,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="predict">predict(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="predict">predict(name, body, x__xgafv=None)</code>
   <pre>Performs prediction on the data in the request.
 
 **** REMOVE FROM GENERATED DOCUMENTATION
diff --git a/docs/dyn/ml_v1beta1.projects.jobs.html b/docs/dyn/ml_v1beta1.projects.jobs.html
index 0399c35..4980b42 100644
--- a/docs/dyn/ml_v1beta1.projects.jobs.html
+++ b/docs/dyn/ml_v1beta1.projects.jobs.html
@@ -75,23 +75,23 @@
 <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>
+  <code><a href="#cancel">cancel(name, 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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#get">get(name, 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>
+  <code><a href="#list">list(parent, 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>
+    <code class="details" id="cancel">cancel(name, body, x__xgafv=None)</code>
   <pre>Cancels a running job.
 
 Args:
@@ -125,7 +125,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, x__xgafv=None)</code>
   <pre>Creates a training or a batch prediction job.
 
 Args:
@@ -136,7 +136,11 @@
     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
@@ -159,11 +163,9 @@
           },
         },
       ],
-      "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
       "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-      "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-          # Only set for hyperparameter tuning jobs.
     },
+    "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.
@@ -311,6 +313,8 @@
           # 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:
@@ -338,10 +342,6 @@
           # `"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.
     "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.
@@ -361,7 +361,11 @@
   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
@@ -384,11 +388,9 @@
             },
           },
         ],
-        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
         "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-            # Only set for hyperparameter tuning jobs.
       },
+      "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.
@@ -536,6 +538,8 @@
             # 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:
@@ -563,10 +567,6 @@
             # `"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.
       "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.
@@ -579,7 +579,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Describes a job.
 
 Args:
@@ -595,7 +595,11 @@
   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
@@ -618,11 +622,9 @@
             },
           },
         ],
-        "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
         "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-        "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-            # Only set for hyperparameter tuning jobs.
       },
+      "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.
@@ -770,6 +772,8 @@
             # 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:
@@ -797,10 +801,6 @@
             # `"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.
       "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.
@@ -813,7 +813,7 @@
 </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, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the jobs in the project.
 
 Args:
@@ -843,7 +843,11 @@
         # 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
@@ -866,11 +870,9 @@
                 },
               },
             ],
-            "isHyperparameterTuningJob": True or False, # Whether this job is a hyperparameter tuning job.
             "consumedMLUnits": 3.14, # The amount of ML units consumed by the job.
-            "completedTrialCount": "A String", # The number of hyperparameter tuning trials that completed successfully.
-                # Only set for hyperparameter tuning jobs.
           },
+          "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.
@@ -1018,6 +1020,8 @@
                 # 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:
@@ -1045,10 +1049,6 @@
                 # `"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.
           "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.
diff --git a/docs/dyn/ml_v1beta1.projects.models.html b/docs/dyn/ml_v1beta1.projects.models.html
index 9483d3e..0a36f05 100644
--- a/docs/dyn/ml_v1beta1.projects.models.html
+++ b/docs/dyn/ml_v1beta1.projects.models.html
@@ -80,23 +80,23 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#delete">delete(name, 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>
+  <code><a href="#get">get(name, 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, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, 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>
+    <code class="details" id="create">create(parent, 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
@@ -136,7 +136,9 @@
         # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-      "description": "A String", # Optional. The description specified for the version when it was created.
+      "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.
       "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
@@ -167,9 +169,7 @@
           #
           # You can change the default version by calling
           # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+      "description": "A String", # Optional. The description specified for the version when it was created.
     },
     "name": "A String", # Required. The name specified for the model when it was created.
         # 
@@ -213,7 +213,9 @@
           # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "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.
         "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
@@ -244,9 +246,7 @@
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+        "description": "A String", # Optional. The description specified for the version when it was created.
       },
       "name": "A String", # Required. The name specified for the model when it was created.
           #
@@ -258,7 +258,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a model.
 
 You can only delete a model if there are no versions in it. You can delete
@@ -279,6 +279,28 @@
 
     { # 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:
@@ -342,33 +364,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.
-    "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(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, 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).
@@ -411,7 +411,9 @@
           # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "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.
         "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
@@ -442,9 +444,7 @@
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+        "description": "A String", # Optional. The description specified for the version when it was created.
       },
       "name": "A String", # Required. The name specified for the model when it was created.
           #
@@ -456,7 +456,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, 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
@@ -466,11 +466,6 @@
   parent: string, Required. The name of the project whose models are to be listed.
 
 Authorization: requires `Viewer` role on the specified project. (required)
-  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.
   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
@@ -479,11 +474,18 @@
     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.
             #
@@ -511,7 +513,9 @@
               # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-            "description": "A String", # Optional. The description specified for the version when it was created.
+            "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.
             "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
@@ -542,9 +546,7 @@
                 #
                 # You can change the default version by calling
                 # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+            "description": "A String", # Optional. The description specified for the version when it was created.
           },
           "name": "A String", # Required. The name specified for the model when it was created.
               #
@@ -554,8 +556,6 @@
           "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 340d4e9..9356a13 100644
--- a/docs/dyn/ml_v1beta1.projects.models.versions.html
+++ b/docs/dyn/ml_v1beta1.projects.models.versions.html
@@ -75,26 +75,26 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#delete">delete(name, 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>
+  <code><a href="#get">get(name, 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, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, 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>
+  <code><a href="#setDefault">setDefault(name, 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>
+    <code class="details" id="create">create(parent, 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
@@ -117,7 +117,9 @@
     # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-  "description": "A String", # Optional. The description specified for the version when it was created.
+  "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.
   "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
@@ -148,9 +150,7 @@
       # 
       # You can change the default version by calling
       # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+  "description": "A String", # Optional. The description specified for the version when it was created.
 }
 
   x__xgafv: string, V1 error format.
@@ -163,6 +163,28 @@
 
     { # 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:
@@ -226,33 +248,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.
-    "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(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a model version.
 
 Each model can have multiple versions deployed and in use at any given
@@ -277,6 +277,28 @@
 
     { # 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:
@@ -340,33 +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.
-    "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(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets information about a model version.
 
 Models can have multiple versions. You can call
@@ -392,7 +392,9 @@
       # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-    "description": "A String", # Optional. The description specified for the version when it was created.
+    "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.
     "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
@@ -423,14 +425,12 @@
         #
         # You can change the default version by calling
         # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+    "description": "A String", # Optional. The description specified for the version when it was created.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, 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
@@ -441,11 +441,6 @@
   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
@@ -454,6 +449,11 @@
     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:
@@ -468,7 +468,9 @@
           # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-        "description": "A String", # Optional. The description specified for the version when it was created.
+        "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.
         "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
@@ -499,9 +501,7 @@
             #
             # You can change the default version by calling
             # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+        "description": "A String", # Optional. The description specified for the version when it was created.
       },
     ],
   }</pre>
@@ -522,7 +522,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setDefault">setDefault(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="setDefault">setDefault(name, 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
@@ -558,7 +558,9 @@
       # 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-engine/reference/rest/v1beta1/projects.models.versions/list).
-    "description": "A String", # Optional. The description specified for the version when it was created.
+    "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.
     "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
@@ -589,9 +591,7 @@
         #
         # You can change the default version by calling
         # [projects.methods.versions.setDefault](/ml-engine/reference/rest/v1beta1/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.
+    "description": "A String", # Optional. The description specified for the version when it was created.
   }</pre>
 </div>
 
diff --git a/docs/dyn/ml_v1beta1.projects.operations.html b/docs/dyn/ml_v1beta1.projects.operations.html
index 3d80014..8631e9a 100644
--- a/docs/dyn/ml_v1beta1.projects.operations.html
+++ b/docs/dyn/ml_v1beta1.projects.operations.html
@@ -172,6 +172,28 @@
 
     { # 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:
@@ -235,28 +257,6 @@
         },
       ],
     },
-    "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>
 
@@ -285,6 +285,28 @@
     "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:
@@ -348,28 +370,6 @@
             },
           ],
         },
-        "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.
diff --git a/docs/dyn/monitoring_v3.projects.metricDescriptors.html b/docs/dyn/monitoring_v3.projects.metricDescriptors.html
index e65f317..5575b54 100644
--- a/docs/dyn/monitoring_v3.projects.metricDescriptors.html
+++ b/docs/dyn/monitoring_v3.projects.metricDescriptors.html
@@ -101,8 +101,7 @@
 
 { # 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".
-    "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"
+    "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.
@@ -155,7 +154,8 @@
         # 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 '}'.
-    "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"
   }
 
   x__xgafv: string, V1 error format.
@@ -168,8 +168,7 @@
 
     { # 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".
-      "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"
+      "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.
@@ -222,7 +221,8 @@
           # 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 '}'.
-      "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"
     }</pre>
 </div>
 
@@ -264,8 +264,7 @@
 
     { # 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".
-      "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"
+      "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.
@@ -318,7 +317,8 @@
           # 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 '}'.
-      "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"
     }</pre>
 </div>
 
@@ -346,8 +346,7 @@
     "metricDescriptors": [ # The metric descriptors that are available to the project and that match the value of filter, if present.
       { # 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".
-          "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"
+          "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.
@@ -400,7 +399,8 @@
               # 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 '}'.
-          "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"
         },
     ],
   }</pre>
diff --git a/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html b/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
index 9697af1..b2020d1 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".
-    "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.
+    "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}".
   }</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".
-        "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.
+        "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}".
       },
     ],
   }</pre>
diff --git a/docs/dyn/partners_v2.analytics.html b/docs/dyn/partners_v2.analytics.html
index 6f0ede4..8b892b4 100644
--- a/docs/dyn/partners_v2.analytics.html
+++ b/docs/dyn/partners_v2.analytics.html
@@ -122,25 +122,13 @@
 
     { # 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.
+      "profileViewsCount": 42, # Aggregated number of profile views for 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.
-      },
+      "contactsCount": 42, # Aggregated number of times users contacted the `Company`
+          # for given date range.
     },
     "analytics": [ # The list of analytics.
         # Sorted in ascending order of
@@ -198,7 +186,7 @@
           "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
+        "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
@@ -263,7 +251,7 @@
           "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without
               # a year.
         },
-        "contacts": { # Details of the analytics events for a `Company` within a single day. # Instances of users contacting the `Company`
+        "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
@@ -317,6 +305,18 @@
         },
       },
     ],
+    "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.
+    "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>
 
diff --git a/docs/dyn/partners_v2.clientMessages.html b/docs/dyn/partners_v2.clientMessages.html
index aced843..b9253ad 100644
--- a/docs/dyn/partners_v2.clientMessages.html
+++ b/docs/dyn/partners_v2.clientMessages.html
@@ -99,8 +99,8 @@
       "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.
+        "userId": "A String", # Logged-in user ID to impersonate instead of the user's 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.
diff --git a/docs/dyn/partners_v2.companies.html b/docs/dyn/partners_v2.companies.html
index ddfda31..ec7d194 100644
--- a/docs/dyn/partners_v2.companies.html
+++ b/docs/dyn/partners_v2.companies.html
@@ -179,8 +179,7 @@
               # address.
             "A String",
           ],
-          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-              # neighborhoods or boroughs in other locations.
+          "locality": "A String", # Generally refers to the city/town portion of an address.
           "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.
@@ -228,7 +227,8 @@
             "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.
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
           "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.
@@ -236,23 +236,6 @@
         },
       ],
       "websiteUrl": "A String", # URL of the company's website.
-      "services": [ # Services the company can help with.
-        "A String",
-      ],
-      "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.
       "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.
@@ -260,8 +243,7 @@
             # address.
           "A String",
         ],
-        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-            # neighborhoods or boroughs in other locations.
+        "locality": "A String", # Generally refers to the city/town portion of an address.
         "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.
@@ -309,17 +291,35 @@
           "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.
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
         "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.
-          "userCount": 42, # Number of people who are certified,
           "isCertified": True or False, # Whether certification is passing.
+          "userCount": 42, # Number of people who are certified,
+          "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.
@@ -496,8 +496,7 @@
                 # address.
               "A String",
             ],
-            "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-                # neighborhoods or boroughs in other locations.
+            "locality": "A String", # Generally refers to the city/town portion of an address.
             "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.
@@ -545,7 +544,8 @@
               "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.
+            "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+                # neighborhoods or boroughs in other locations.
             "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.
@@ -553,23 +553,6 @@
           },
         ],
         "websiteUrl": "A String", # URL of the company's website.
-        "services": [ # Services the company can help with.
-          "A String",
-        ],
-        "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.
         "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.
@@ -577,8 +560,7 @@
               # address.
             "A String",
           ],
-          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-              # neighborhoods or boroughs in other locations.
+          "locality": "A String", # Generally refers to the city/town portion of an address.
           "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.
@@ -626,17 +608,35 @@
             "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.
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
           "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.
-            "userCount": 42, # Number of people who are certified,
             "isCertified": True or False, # Whether certification is passing.
+            "userCount": 42, # Number of people who are certified,
+            "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.
diff --git a/docs/dyn/partners_v2.companies.leads.html b/docs/dyn/partners_v2.companies.leads.html
index 7e6cd46..f41ccd9 100644
--- a/docs/dyn/partners_v2.companies.leads.html
+++ b/docs/dyn/partners_v2.companies.leads.html
@@ -97,8 +97,8 @@
       "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.
+        "userId": "A String", # Logged-in user ID to impersonate instead of the user's 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.
@@ -120,9 +120,7 @@
       "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").
-      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-        "A String",
-      ],
+      "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.
         "nanos": 42, # Number of nano (10^-9) units of the amount.
@@ -140,10 +138,12 @@
       "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.
-      "adwordsCustomerId": "A String", # The AdWords Customer ID of the 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.
-      "type": "A String", # Type of lead.
+      "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
       "createTime": "A String", # Timestamp of when this lead was created.
     },
   }
@@ -166,9 +166,7 @@
       "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").
-      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-        "A String",
-      ],
+      "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.
         "nanos": 42, # Number of nano (10^-9) units of the amount.
@@ -186,10 +184,12 @@
       "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.
-      "adwordsCustomerId": "A String", # The AdWords Customer ID of the 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.
-      "type": "A String", # Type of lead.
+      "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.
diff --git a/docs/dyn/partners_v2.leads.html b/docs/dyn/partners_v2.leads.html
index c79ed1a..99895ef 100644
--- a/docs/dyn/partners_v2.leads.html
+++ b/docs/dyn/partners_v2.leads.html
@@ -128,9 +128,7 @@
         "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").
-        "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-          "A String",
-        ],
+        "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.
           "nanos": 42, # Number of nano (10^-9) units of the amount.
@@ -148,10 +146,12 @@
         "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.
-        "adwordsCustomerId": "A String", # The AdWords Customer ID of the 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.
-        "type": "A String", # Type of lead.
+        "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
         "createTime": "A String", # Timestamp of when this lead was created.
       },
     ],
diff --git a/docs/dyn/partners_v2.offers.history.html b/docs/dyn/partners_v2.offers.history.html
index f10bb49..8156553 100644
--- a/docs/dyn/partners_v2.offers.history.html
+++ b/docs/dyn/partners_v2.offers.history.html
@@ -127,15 +127,15 @@
       { # Historical information about a Google Partners Offer.
         "offerCode": "A String", # Offer code.
         "status": "A String", # Status of the offer.
-        "offerCountryCode": "A String", # Country Code for the offer country.
         "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.
-        "lastModifiedTime": "A String", # Time last action was taken.
+        "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.
-        "expirationTime": "A String", # Time this offer expires.
+        "lastModifiedTime": "A String", # Time last action was taken.
         "clientName": "A String", # Name of the client.
       },
     ],
diff --git a/docs/dyn/partners_v2.offers.html b/docs/dyn/partners_v2.offers.html
index 56cab11..6790ab1 100644
--- a/docs/dyn/partners_v2.offers.html
+++ b/docs/dyn/partners_v2.offers.html
@@ -134,14 +134,14 @@
           },
         ],
         "terms": "A String", # Terms of the offer.
-        "description": "A String", # Description of the offer.
+        "name": "A String", # Name 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.
+        "description": "A String", # Description of the offer.
       },
     ],
     "responseMetadata": { # Common data that is in each API response. # Current response metadata.
diff --git a/docs/dyn/partners_v2.userEvents.html b/docs/dyn/partners_v2.userEvents.html
index aa8d8e6..2708ae9 100644
--- a/docs/dyn/partners_v2.userEvents.html
+++ b/docs/dyn/partners_v2.userEvents.html
@@ -94,9 +94,7 @@
       "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").
-      "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-        "A String",
-      ],
+      "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.
         "nanos": 42, # Number of nano (10^-9) units of the amount.
@@ -114,10 +112,12 @@
       "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.
-      "adwordsCustomerId": "A String", # The AdWords Customer ID of the 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.
-      "type": "A String", # Type of lead.
+      "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.
@@ -140,8 +140,8 @@
       "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.
+        "userId": "A String", # Logged-in user ID to impersonate instead of the user's 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.
diff --git a/docs/dyn/partners_v2.users.html b/docs/dyn/partners_v2.users.html
index 18c1228..cd7bb00 100644
--- a/docs/dyn/partners_v2.users.html
+++ b/docs/dyn/partners_v2.users.html
@@ -75,20 +75,20 @@
 <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>
+  <code><a href="#createCompanyRelation">createCompanyRelation(userId, 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>
+  <code><a href="#deleteCompanyRelation">deleteCompanyRelation(userId, 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>
+  <code><a href="#get">get(userId, 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>
+    <code class="details" id="createCompanyRelation">createCompanyRelation(userId, 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:
@@ -99,31 +99,31 @@
 
 { # 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",
-    ],
+    "managerAccount": "A String", # The AdWords manager account # associated this company.
     "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.
       },
     ],
+    "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.
+    "address": "A String", # The primary address for this company.
+    "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.
+    "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+    "resolvedTimestamp": "A String", # The timestamp when the user was approved.
+        # @OutputOnly
+    "segment": [ # The segment the company is classified as.
+      "A String",
+    ],
+    "name": "A String", # The name (in the company's primary language) for the company.
   }
 
   requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
@@ -147,36 +147,36 @@
 
     { # 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",
-      ],
+      "managerAccount": "A String", # The AdWords manager account # associated this company.
       "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.
         },
       ],
+      "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.
+      "address": "A String", # The primary address for this company.
+      "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.
+      "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+      "resolvedTimestamp": "A String", # The timestamp when the user was approved.
+          # @OutputOnly
+      "segment": [ # The segment the company is classified as.
+        "A String",
+      ],
+      "name": "A String", # The name (in the company's primary language) for the company.
     }</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>
+    <code class="details" id="deleteCompanyRelation">deleteCompanyRelation(userId, 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:
@@ -214,7 +214,7 @@
 </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>
+    <code class="details" id="get">get(userId, 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:
@@ -241,19 +241,21 @@
   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",
         ],
-        "languages": [ # The list of languages this user understands.
-          "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.
-        "primaryCountryCode": "A String", # The user's primary country, an ISO 2-character code.
-        "markets": [ # A list of ids representing which markets the user was interested in.
+        "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.
@@ -269,7 +271,7 @@
         "channels": [ # A list of ids representing which channels the user selected they were in.
           "A String",
         ],
-        "phoneNumber": "A String", # The user's phone number.
+        "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.
@@ -277,8 +279,7 @@
               # address.
             "A String",
           ],
-          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-              # neighborhoods or boroughs in other locations.
+          "locality": "A String", # Generally refers to the city/town portion of an address.
           "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.
@@ -326,29 +327,28 @@
             "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.
+          "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+              # neighborhoods or boroughs in other locations.
           "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.
         },
-        "emailAddress": "A String", # The email address the user has selected on the Partners site as primary.
+        "phoneNumber": "A String", # The user's phone number.
         "givenName": "A String", # The user's given name.
-        "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+        "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.
       },
-    "companyVerificationEmail": "A String", # The email address used by the user used for company verification.
-        # @OutputOnly
     "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.
-        "lastAchieved": "A String", # The date the user last achieved certification.
         "warning": True or False, # Whether this certification is in the state of warning.
-        "expiration": "A String", # Date this certification is due to expire.
         "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.
       },
     ],
@@ -359,38 +359,38 @@
         # @OutputOnly
       { # Information about a particular AdWords Manager Account.
           # Read more at https://support.google.com/adwords/answer/6139186
-        "id": "A String", # The AdWords Manager Account id.
         "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",
-        ],
+        "managerAccount": "A String", # The AdWords manager account # associated this company.
         "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.
           },
         ],
+        "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.
+        "address": "A String", # The primary address for this company.
+        "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.
+        "logoUrl": "A String", # A URL to a profile photo, e.g. a G+ profile photo.
+        "resolvedTimestamp": "A String", # The timestamp when the user was approved.
+            # @OutputOnly
+        "segment": [ # The segment the company is classified as.
+          "A String",
+        ],
+        "name": "A String", # The name (in the company's primary language) for the company.
       },
     "lastAccessTime": "A String", # The most recent time the user interacted with the Partners site.
         # @OutputOnly
@@ -433,14 +433,14 @@
     "industries": [ # A list of ids representing which industries the user selected.
       "A String",
     ],
-    "languages": [ # The list of languages this user understands.
-      "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.
-    "primaryCountryCode": "A String", # The user's primary country, an ISO 2-character code.
-    "markets": [ # A list of ids representing which markets the user was interested in.
+    "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.
@@ -456,7 +456,7 @@
     "channels": [ # A list of ids representing which channels the user selected they were in.
       "A String",
     ],
-    "phoneNumber": "A String", # The user's phone number.
+    "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.
@@ -464,8 +464,7 @@
           # address.
         "A String",
       ],
-      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-          # neighborhoods or boroughs in other locations.
+      "locality": "A String", # Generally refers to the city/town portion of an address.
       "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.
@@ -513,15 +512,16 @@
         "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.
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
       "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.
     },
-    "emailAddress": "A String", # The email address the user has selected on the Partners site as primary.
+    "phoneNumber": "A String", # The user's phone number.
     "givenName": "A String", # The user's given name.
-    "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+    "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.
@@ -550,14 +550,14 @@
       "industries": [ # A list of ids representing which industries the user selected.
         "A String",
       ],
-      "languages": [ # The list of languages this user understands.
-        "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.
-      "primaryCountryCode": "A String", # The user's primary country, an ISO 2-character code.
-      "markets": [ # A list of ids representing which markets the user was interested in.
+      "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.
@@ -573,7 +573,7 @@
       "channels": [ # A list of ids representing which channels the user selected they were in.
         "A String",
       ],
-      "phoneNumber": "A String", # The user's phone number.
+      "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.
@@ -581,8 +581,7 @@
             # address.
           "A String",
         ],
-        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-            # neighborhoods or boroughs in other locations.
+        "locality": "A String", # Generally refers to the city/town portion of an address.
         "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.
@@ -630,15 +629,16 @@
           "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.
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
         "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.
       },
-      "emailAddress": "A String", # The email address the user has selected on the Partners site as primary.
+      "phoneNumber": "A String", # The user's phone number.
       "givenName": "A String", # The user's given name.
-      "jobFunctions": [ # A list of ids represnting which job categories the user selected.
+      "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.
diff --git a/docs/dyn/partners_v2.v2.html b/docs/dyn/partners_v2.v2.html
index 22270a4..662f523 100644
--- a/docs/dyn/partners_v2.v2.html
+++ b/docs/dyn/partners_v2.v2.html
@@ -183,8 +183,7 @@
           # address.
         "A String",
       ],
-      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-          # neighborhoods or boroughs in other locations.
+      "locality": "A String", # Generally refers to the city/town portion of an address.
       "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.
@@ -232,7 +231,8 @@
         "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.
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
       "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.
@@ -240,23 +240,6 @@
     },
   ],
   "websiteUrl": "A String", # URL of the company's website.
-  "services": [ # Services the company can help with.
-    "A String",
-  ],
-  "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.
   "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.
@@ -264,8 +247,7 @@
         # address.
       "A String",
     ],
-    "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-        # neighborhoods or boroughs in other locations.
+    "locality": "A String", # Generally refers to the city/town portion of an address.
     "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.
@@ -313,17 +295,35 @@
       "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.
+    "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+        # neighborhoods or boroughs in other locations.
     "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.
-      "userCount": 42, # Number of people who are certified,
       "isCertified": True or False, # Whether certification is passing.
+      "userCount": 42, # Number of people who are certified,
+      "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.
@@ -433,8 +433,7 @@
             # address.
           "A String",
         ],
-        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-            # neighborhoods or boroughs in other locations.
+        "locality": "A String", # Generally refers to the city/town portion of an address.
         "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.
@@ -482,7 +481,8 @@
           "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.
+        "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+            # neighborhoods or boroughs in other locations.
         "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.
@@ -490,23 +490,6 @@
       },
     ],
     "websiteUrl": "A String", # URL of the company's website.
-    "services": [ # Services the company can help with.
-      "A String",
-    ],
-    "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.
     "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.
@@ -514,8 +497,7 @@
           # address.
         "A String",
       ],
-      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
-          # neighborhoods or boroughs in other locations.
+      "locality": "A String", # Generally refers to the city/town portion of an address.
       "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.
@@ -563,17 +545,35 @@
         "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.
+      "dependentLocality": "A String", # Dependent locality or sublocality. Used for UK dependent localities, or
+          # neighborhoods or boroughs in other locations.
       "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.
-        "userCount": 42, # Number of people who are certified,
         "isCertified": True or False, # Whether certification is passing.
+        "userCount": 42, # Number of people who are certified,
+        "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.
@@ -624,9 +624,7 @@
   "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").
-  "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-    "A String",
-  ],
+  "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.
     "nanos": 42, # Number of nano (10^-9) units of the amount.
@@ -644,10 +642,12 @@
   "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.
-  "adwordsCustomerId": "A String", # The AdWords Customer ID of the 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.
-  "type": "A String", # Type of lead.
+  "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
   "createTime": "A String", # Timestamp of when this lead was created.
 }
 
@@ -679,9 +679,7 @@
     "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").
-    "gpsMotivations": [ # List of reasons for using Google Partner Search and creating a lead.
-      "A String",
-    ],
+    "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.
       "nanos": 42, # Number of nano (10^-9) units of the amount.
@@ -699,10 +697,12 @@
     "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.
-    "adwordsCustomerId": "A String", # The AdWords Customer ID of the 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.
-    "type": "A String", # Type of lead.
+    "adwordsCustomerId": "A String", # The AdWords Customer ID of the lead.
     "createTime": "A String", # Timestamp of when this lead was created.
   }</pre>
 </div>
diff --git a/docs/dyn/people_v1.people.connections.html b/docs/dyn/people_v1.people.connections.html
index 1a9c233..5b9c777 100644
--- a/docs/dyn/people_v1.people.connections.html
+++ b/docs/dyn/people_v1.people.connections.html
@@ -235,24 +235,6 @@
           { # 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.
-            "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.
-            "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.
               "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
@@ -270,6 +252,24 @@
               "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.
@@ -556,9 +556,15 @@
           },
         ],
         "metadata": { # The read-only metadata about a person. # Metadata about the person.
-          "deleted": True or False, # True if the person resource has been deleted. Populated only for
+          "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
@@ -574,15 +580,9 @@
           "linkedPeopleResourceNames": [ # Resource names of people linked to this resource.
             "A String",
           ],
-          "previousResourceNames": [ # Any former resource names this person has had. Populated only for
+          "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.
-              #
-              # 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",
-          ],
           "objectType": "A String", # DEPRECATED(Please read person.metadata.sources.profile_metadata instead).
               # The type of the person object.
         },
@@ -738,19 +738,8 @@
         "organizations": [ # The person's past or current organizations.
           { # A person's past or current organization. Overlapping date ranges are
               # permitted.
-            "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.
-              "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 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 # The end date when the person left the organization.
                 # of day and time zone are either specified elsewhere or are not
@@ -766,16 +755,27 @@
                   # a year.
             },
             "name": "A String", # The name of the organization.
-            "title": "A String", # The person's job title at the organization.
+            "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.
+              "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.
             "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.
-            "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.
             "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:
                 #
diff --git a/docs/dyn/people_v1.people.html b/docs/dyn/people_v1.people.html
index b8331d2..168b82a 100644
--- a/docs/dyn/people_v1.people.html
+++ b/docs/dyn/people_v1.people.html
@@ -80,14 +80,14 @@
 <p class="firstline">Returns the connections Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#get">get(resourceName=None, x__xgafv=None, requestMask_includeField=None)</a></code></p>
+  <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</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</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(resourceName=None, x__xgafv=None, requestMask_includeField=None)</code>
+    <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.
 
@@ -232,24 +232,6 @@
       { # 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.
-        "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.
-        "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.
           "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
@@ -267,6 +249,24 @@
           "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.
@@ -553,9 +553,15 @@
       },
     ],
     "metadata": { # The read-only metadata about a person. # Metadata about the person.
-      "deleted": True or False, # True if the person resource has been deleted. Populated only for
+      "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
@@ -571,15 +577,9 @@
       "linkedPeopleResourceNames": [ # Resource names of people linked to this resource.
         "A String",
       ],
-      "previousResourceNames": [ # Any former resource names this person has had. Populated only for
+      "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.
-          #
-          # 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",
-      ],
       "objectType": "A String", # DEPRECATED(Please read person.metadata.sources.profile_metadata instead).
           # The type of the person object.
     },
@@ -735,19 +735,8 @@
     "organizations": [ # The person's past or current organizations.
       { # A person's past or current organization. Overlapping date ranges are
           # permitted.
-        "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.
-          "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 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 # The end date when the person left the organization.
             # of day and time zone are either specified elsewhere or are not
@@ -763,16 +752,27 @@
               # a year.
         },
         "name": "A String", # The name of the organization.
-        "title": "A String", # The person's job title at the organization.
+        "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.
+          "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.
         "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.
-        "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.
         "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:
             #
@@ -1132,24 +1132,6 @@
             { # 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.
-              "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.
-              "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.
                 "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
@@ -1167,6 +1149,24 @@
                 "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.
@@ -1453,9 +1453,15 @@
             },
           ],
           "metadata": { # The read-only metadata about a person. # Metadata about the person.
-            "deleted": True or False, # True if the person resource has been deleted. Populated only for
+            "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
@@ -1471,15 +1477,9 @@
             "linkedPeopleResourceNames": [ # Resource names of people linked to this resource.
               "A String",
             ],
-            "previousResourceNames": [ # Any former resource names this person has had. Populated only for
+            "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.
-                #
-                # 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",
-            ],
             "objectType": "A String", # DEPRECATED(Please read person.metadata.sources.profile_metadata instead).
                 # The type of the person object.
           },
@@ -1635,19 +1635,8 @@
           "organizations": [ # The person's past or current organizations.
             { # A person's past or current organization. Overlapping date ranges are
                 # permitted.
-              "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.
-                "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 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 # The end date when the person left the organization.
                   # of day and time zone are either specified elsewhere or are not
@@ -1663,16 +1652,27 @@
                     # a year.
               },
               "name": "A String", # The name of the organization.
-              "title": "A String", # The person's job title at the organization.
+              "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.
+                "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.
               "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.
-              "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.
               "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:
                   #
diff --git a/docs/dyn/playmoviespartner_v1.accounts.avails.html b/docs/dyn/playmoviespartner_v1.accounts.avails.html
index 3d8d6f6..b700a91 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.avails.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.avails.html
@@ -243,8 +243,8 @@
   An object of the form:
 
     { # Response to the 'ListAvails' method.
-    "nextPageToken": "A String", # See _List methods rules_ for info about this field.
     "totalSize": 42, # See _List methods rules_ for more information about this field.
+    "nextPageToken": "A String", # See _List methods rules_ for info 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.
diff --git a/docs/dyn/playmoviespartner_v1.accounts.orders.html b/docs/dyn/playmoviespartner_v1.accounts.orders.html
index 116ec2d..ed1592a 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.orders.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.orders.html
@@ -110,8 +110,7 @@
       #
       # Externally, Orders can also be identified by partners using its `custom_id`
       # (when provided).
-    "orderId": "A String", # ID internally generated by Google to uniquely identify an Order.
-        # Example: 'abcde12_x'
+    "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".
     "studioName": "A String", # Name of the studio that owns the Edit ordered.
@@ -131,11 +130,12 @@
     "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.
-    "status": "A String", # High-level status of the order.
-    "statusDetail": "A String", # Detailed status of 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'.
+    "statusDetail": "A String", # Detailed status of the order
     "approvedTime": "A String", # Timestamp when the Order was approved.
     "name": "A String", # Default Edit name,
         # usually in the language of the country of origin.
@@ -200,8 +200,7 @@
           #
           # Externally, Orders can also be identified by partners using its `custom_id`
           # (when provided).
-        "orderId": "A String", # ID internally generated by Google to uniquely identify an Order.
-            # Example: 'abcde12_x'
+        "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".
         "studioName": "A String", # Name of the studio that owns the Edit ordered.
@@ -221,11 +220,12 @@
         "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.
-        "status": "A String", # High-level status of the order.
-        "statusDetail": "A String", # Detailed status of 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'.
+        "statusDetail": "A String", # Detailed status of the order
         "approvedTime": "A String", # Timestamp when the Order was approved.
         "name": "A String", # Default Edit name,
             # usually in the language of the country of origin.
diff --git a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
index e2d7bf6..4007c16 100644
--- a/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
+++ b/docs/dyn/playmoviespartner_v1.accounts.storeInfos.html
@@ -118,6 +118,7 @@
   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.
@@ -188,7 +189,6 @@
       },
     ],
     "totalSize": 42, # See _List methods rules_ for more information about this field.
-    "nextPageToken": "A String", # See 'List methods rules' for info about this field.
   }</pre>
 </div>
 
diff --git a/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html b/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html
index fdd25f6..68146e7 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beacons.attachments.html
@@ -75,20 +75,20 @@
 <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=None, namespacedType=None, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#create">create(beaconName=None, body, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(attachmentName=None, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#list">list(beaconName=None, namespacedType=None, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="batchDelete">batchDelete(beaconName=None, namespacedType=None, projectId=None, x__xgafv=None)</code>
+    <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.
 
@@ -133,7 +133,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(beaconName=None, body, projectId=None, x__xgafv=None)</code>
+    <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:
 <ul>
@@ -210,7 +210,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(attachmentName=None, projectId=None, x__xgafv=None)</code>
+    <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
@@ -252,7 +252,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(beaconName=None, namespacedType=None, projectId=None, x__xgafv=None)</code>
+    <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.
 
diff --git a/docs/dyn/proximitybeacon_v1beta1.beacons.html b/docs/dyn/proximitybeacon_v1beta1.beacons.html
index 107002a..64ab298 100644
--- a/docs/dyn/proximitybeacon_v1beta1.beacons.html
+++ b/docs/dyn/proximitybeacon_v1beta1.beacons.html
@@ -85,19 +85,19 @@
 <p class="firstline">Returns the diagnostics Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#activate">activate(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#deactivate">deactivate(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#decommission">decommission(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(beaconName, 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="#get">get(beaconName=None, projectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(beaconName, 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>
@@ -109,11 +109,11 @@
   <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`.</p>
 <p class="toc_element">
-  <code><a href="#update">update(beaconName=None, body, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="activate">activate(beaconName=None, projectId=None, x__xgafv=None)</code>
+    <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
@@ -156,7 +156,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="deactivate">deactivate(beaconName=None, projectId=None, x__xgafv=None)</code>
+    <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
@@ -199,7 +199,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="decommission">decommission(beaconName=None, projectId=None, x__xgafv=None)</code>
+    <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
@@ -242,7 +242,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(beaconName=None, projectId=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(beaconName, 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.
@@ -283,7 +283,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(beaconName=None, projectId=None, x__xgafv=None)</code>
+    <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)
@@ -416,16 +416,16 @@
           # 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`
+      "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.
       "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`
+      "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.
       "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
@@ -670,16 +670,16 @@
               # 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`
+          "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.
           "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`
+          "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.
           "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
@@ -859,16 +859,16 @@
         # 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`
+    "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.
     "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`
+    "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.
     "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
@@ -1028,16 +1028,16 @@
           # 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`
+      "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.
       "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`
+      "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.
       "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
@@ -1087,7 +1087,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(beaconName=None, body, projectId=None, x__xgafv=None)</code>
+    <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
@@ -1211,16 +1211,16 @@
         # 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`
+    "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.
     "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`
+    "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.
     "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
@@ -1380,16 +1380,16 @@
           # 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`
+      "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.
       "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`
+      "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.
       "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
diff --git a/docs/dyn/proximitybeacon_v1beta1.namespaces.html b/docs/dyn/proximitybeacon_v1beta1.namespaces.html
index def3fb8..6b3aaa4 100644
--- a/docs/dyn/proximitybeacon_v1beta1.namespaces.html
+++ b/docs/dyn/proximitybeacon_v1beta1.namespaces.html
@@ -78,7 +78,7 @@
   <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</p>
 <p class="toc_element">
-  <code><a href="#update">update(namespaceName=None, body, projectId=None, x__xgafv=None)</a></code></p>
+  <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</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -107,17 +107,17 @@
       { # 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.
-        "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
-            # via `beaconinfo.getforobserved`.
         "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=None, body, projectId=None, x__xgafv=None)</code>
+    <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.
 
@@ -130,10 +130,10 @@
 { # 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.
-  "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
-      # via `beaconinfo.getforobserved`.
   "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
@@ -151,10 +151,10 @@
     { # 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.
-    "servingVisibility": "A String", # Specifies what clients may receive attachments under this namespace
-        # via `beaconinfo.getforobserved`.
     "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/pubsub_v1.projects.snapshots.html b/docs/dyn/pubsub_v1.projects.snapshots.html
index 5a15e7f..96378be 100644
--- a/docs/dyn/pubsub_v1.projects.snapshots.html
+++ b/docs/dyn/pubsub_v1.projects.snapshots.html
@@ -75,17 +75,17 @@
 <h1><a href="pubsub_v1.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1.projects.html">projects</a> . <a href="pubsub_v1.projects.snapshots.html">snapshots</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -180,7 +180,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -359,7 +359,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
diff --git a/docs/dyn/pubsub_v1.projects.subscriptions.html b/docs/dyn/pubsub_v1.projects.subscriptions.html
index 5f513e2..0f262fb 100644
--- a/docs/dyn/pubsub_v1.projects.subscriptions.html
+++ b/docs/dyn/pubsub_v1.projects.subscriptions.html
@@ -75,44 +75,44 @@
 <h1><a href="pubsub_v1.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1.projects.html">projects</a> . <a href="pubsub_v1.projects.subscriptions.html">subscriptions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#acknowledge">acknowledge(subscription=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#acknowledge">acknowledge(subscription, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Acknowledges the messages associated with the `ack_ids` in the</p>
 <p class="toc_element">
-  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a subscription to a given topic.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(subscription=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(subscription, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes an existing subscription. All messages retained in the subscription</p>
 <p class="toc_element">
-  <code><a href="#get">get(subscription=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(subscription, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the configuration details of a subscription.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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(project=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists matching subscriptions.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#modifyAckDeadline">modifyAckDeadline(subscription=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#modifyAckDeadline">modifyAckDeadline(subscription, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Modifies the ack deadline for a specific message. This method is useful</p>
 <p class="toc_element">
-  <code><a href="#modifyPushConfig">modifyPushConfig(subscription=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#modifyPushConfig">modifyPushConfig(subscription, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Modifies the `PushConfig` for a specified subscription.</p>
 <p class="toc_element">
-  <code><a href="#pull">pull(subscription=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#pull">pull(subscription, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Pulls messages from the server. Returns an empty list if there are no</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="acknowledge">acknowledge(subscription=None, body, x__xgafv=None)</code>
+    <code class="details" id="acknowledge">acknowledge(subscription, body, x__xgafv=None)</code>
   <pre>Acknowledges the messages associated with the `ack_ids` in the
 `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages
 from the subscription.
@@ -155,7 +155,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Creates a subscription to a given topic.
 If the subscription already exists, returns `ALREADY_EXISTS`.
 If the corresponding topic doesn't exist, returns `NOT_FOUND`.
@@ -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.
@@ -247,10 +247,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
@@ -270,6 +266,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.
@@ -309,7 +309,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(subscription=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(subscription, x__xgafv=None)</code>
   <pre>Deletes an existing subscription. All messages retained in the subscription
 are immediately dropped. Calls to `Pull` after deletion will return
 `NOT_FOUND`. After a subscription is deleted, a new one may be created with
@@ -340,7 +340,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(subscription=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(subscription, x__xgafv=None)</code>
   <pre>Gets the configuration details of a subscription.
 
 Args:
@@ -355,10 +355,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
@@ -378,6 +374,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.
@@ -417,7 +417,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -512,7 +512,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(project=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists matching subscriptions.
 
 Args:
@@ -536,10 +536,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
@@ -559,6 +555,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.
@@ -614,7 +614,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="modifyAckDeadline">modifyAckDeadline(subscription=None, body, x__xgafv=None)</code>
+    <code class="details" id="modifyAckDeadline">modifyAckDeadline(subscription, body, x__xgafv=None)</code>
   <pre>Modifies the ack deadline for a specific message. This method is useful
 to indicate that more time is needed to process a message by the
 subscriber, or to make the message available for redelivery if the
@@ -661,7 +661,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="modifyPushConfig">modifyPushConfig(subscription=None, body, x__xgafv=None)</code>
+    <code class="details" id="modifyPushConfig">modifyPushConfig(subscription, body, x__xgafv=None)</code>
   <pre>Modifies the `PushConfig` for a specified subscription.
 
 This may be used to change a push subscription to a pull one (signified by
@@ -731,7 +731,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="pull">pull(subscription=None, body, x__xgafv=None)</code>
+    <code class="details" id="pull">pull(subscription, body, x__xgafv=None)</code>
   <pre>Pulls messages from the server. Returns an empty list if there are no
 messages available in the backlog. The server may return `UNAVAILABLE` if
 there are too many concurrent pull requests pending for the given
@@ -789,7 +789,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -968,7 +968,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
diff --git a/docs/dyn/pubsub_v1.projects.topics.html b/docs/dyn/pubsub_v1.projects.topics.html
index 3110294..9006a79 100644
--- a/docs/dyn/pubsub_v1.projects.topics.html
+++ b/docs/dyn/pubsub_v1.projects.topics.html
@@ -80,35 +80,35 @@
 <p class="firstline">Returns the subscriptions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates the given topic with the given name.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(topic=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(topic, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes the topic with the given name. Returns `NOT_FOUND` if the topic</p>
 <p class="toc_element">
-  <code><a href="#get">get(topic=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(topic, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the configuration of a topic.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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(project=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists matching topics.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#publish">publish(topic=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#publish">publish(topic, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Creates the given topic with the given name.
 
 Args:
@@ -149,7 +149,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(topic=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(topic, x__xgafv=None)</code>
   <pre>Deletes the topic with the given name. Returns `NOT_FOUND` if the topic
 does not exist. After a topic is deleted, a new topic may be created with
 the same name; this is an entirely new topic with none of the old
@@ -180,7 +180,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(topic=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(topic, x__xgafv=None)</code>
   <pre>Gets the configuration of a topic.
 
 Args:
@@ -205,7 +205,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -300,7 +300,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(project=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists matching topics.
 
 Args:
@@ -349,7 +349,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="publish">publish(topic=None, body, x__xgafv=None)</code>
+    <code class="details" id="publish">publish(topic, body, x__xgafv=None)</code>
   <pre>Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic
 does not exist. The message payload must not be empty; it must contain
  either a non-empty data field, or at least one attribute.
@@ -397,7 +397,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -576,7 +576,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
diff --git a/docs/dyn/pubsub_v1.projects.topics.subscriptions.html b/docs/dyn/pubsub_v1.projects.topics.subscriptions.html
index c89540c..baa1409 100644
--- a/docs/dyn/pubsub_v1.projects.topics.subscriptions.html
+++ b/docs/dyn/pubsub_v1.projects.topics.subscriptions.html
@@ -75,14 +75,14 @@
 <h1><a href="pubsub_v1.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1.projects.html">projects</a> . <a href="pubsub_v1.projects.topics.html">topics</a> . <a href="pubsub_v1.projects.topics.subscriptions.html">subscriptions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(topic=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(topic, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the name of the subscriptions for this topic.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(topic=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(topic, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the name of the subscriptions for this topic.
 
 Args:
diff --git a/docs/dyn/pubsub_v1beta1a.subscriptions.html b/docs/dyn/pubsub_v1beta1a.subscriptions.html
index 4b460c7..d7d9006 100644
--- a/docs/dyn/pubsub_v1beta1a.subscriptions.html
+++ b/docs/dyn/pubsub_v1beta1a.subscriptions.html
@@ -164,6 +164,7 @@
     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
@@ -183,7 +184,6 @@
       # 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.
@@ -201,6 +201,7 @@
   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
@@ -220,7 +221,6 @@
         # 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.
@@ -278,6 +278,7 @@
   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
@@ -297,7 +298,6 @@
         # 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.
@@ -330,6 +330,7 @@
         # <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
@@ -349,7 +350,6 @@
             # 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.
@@ -389,14 +389,14 @@
         # deadline will expire 10 seconds after the ModifyAckDeadline call was made.
         # Specifying zero may immediately make the message available for another pull
         # request.
-    "ackId": "A String", # The acknowledgment ID. Either this or ack_ids must be populated,
-        # not both.
-    "subscription": "A String", # Next Index: 5
-        # The name of the subscription from which messages are being pulled.
     "ackIds": [ # List of acknowledgment IDs. Either this field or ack_id
         # should be populated, not both.
       "A String",
     ],
+    "ackId": "A String", # The acknowledgment ID. Either this or ack_ids must be populated,
+        # not both.
+    "subscription": "A String", # Next Index: 5
+        # The name of the subscription from which messages are being pulled.
   }
 
   x__xgafv: string, V1 error format.
@@ -539,8 +539,8 @@
             # that receives a PubsubMessage via a Pull call or a push delivery. It must
             # not be populated by a publisher in a Publish call.
       },
-      "subscription": "A String", # The subscription that received the event.
       "truncated": True or False, # Indicates that this subscription has been truncated.
+      "subscription": "A String", # The subscription that received the event.
     },
     "ackId": "A String", # This ID must be used to acknowledge the received event or message.
   }</pre>
@@ -620,8 +620,8 @@
                 # that receives a PubsubMessage via a Pull call or a push delivery. It must
                 # not be populated by a publisher in a Publish call.
           },
-          "subscription": "A String", # The subscription that received the event.
           "truncated": True or False, # Indicates that this subscription has been truncated.
+          "subscription": "A String", # The subscription that received the event.
         },
         "ackId": "A String", # This ID must be used to acknowledge the received event or message.
       },
diff --git a/docs/dyn/pubsub_v1beta2.projects.subscriptions.html b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
index 1f00d47..d7f372f 100644
--- a/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
+++ b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
@@ -78,7 +78,7 @@
   <code><a href="#acknowledge">acknowledge(subscription, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Acknowledges the messages associated with the `ack_ids` in the</p>
 <p class="toc_element">
-  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a subscription to a given topic.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(subscription, x__xgafv=None)</a></code></p>
@@ -87,7 +87,7 @@
   <code><a href="#get">get(subscription, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the configuration details of a subscription.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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(project, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
@@ -105,10 +105,10 @@
   <code><a href="#pull">pull(subscription, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Pulls messages from the server. Returns an empty list if there are no</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -154,7 +154,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Creates a subscription to a given topic.
 If the subscription already exists, returns `ALREADY_EXISTS`.
 If the corresponding topic doesn't exist, returns `NOT_FOUND`.
@@ -174,95 +174,27 @@
     The object takes the form of:
 
 { # 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"`.
-}
-
-  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.
+      "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"`.
+    }</pre>
 </div>
 
 <div class="method">
@@ -347,68 +347,68 @@
   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.
+      "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).
           #
-          # 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.
+      "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">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -526,64 +526,64 @@
         # `ListSubscriptionsRequest` to get more subscriptions.
     "subscriptions": [ # The subscriptions that match the request.
       { # 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.
+          "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).
               #
-              # 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.
+          "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>
@@ -621,11 +621,11 @@
         # ack deadline will expire 10 seconds after the `ModifyAckDeadline` call
         # was made. Specifying zero may immediately make the message available for
         # another pull request.
-    "ackId": "A String", # The acknowledgment ID. Either this or ack_ids must be populated, but not
-        # both.
     "ackIds": [ # List of acknowledgment IDs.
       "A String",
     ],
+    "ackId": "A String", # The acknowledgment ID. Either this or ack_ids must be populated, but not
+        # both.
   }
 
   x__xgafv: string, V1 error format.
@@ -776,7 +776,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -955,7 +955,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
diff --git a/docs/dyn/pubsub_v1beta2.projects.topics.html b/docs/dyn/pubsub_v1beta2.projects.topics.html
index aec060c..8639b4f 100644
--- a/docs/dyn/pubsub_v1beta2.projects.topics.html
+++ b/docs/dyn/pubsub_v1beta2.projects.topics.html
@@ -80,7 +80,7 @@
 <p class="firstline">Returns the subscriptions Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#create">create(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates the given topic with the given name.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(topic, x__xgafv=None)</a></code></p>
@@ -89,7 +89,7 @@
   <code><a href="#get">get(topic, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the configuration of a topic.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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(project, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
@@ -101,14 +101,14 @@
   <code><a href="#publish">publish(topic, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic</p>
 <p class="toc_element">
-  <code><a href="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(name, body, x__xgafv=None)</code>
   <pre>Creates the given topic with the given name.
 
 Args:
@@ -203,7 +203,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -394,7 +394,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -573,7 +573,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
diff --git a/docs/dyn/runtimeconfig_v1.operations.html b/docs/dyn/runtimeconfig_v1.operations.html
index 21651dc..8079e8f 100644
--- a/docs/dyn/runtimeconfig_v1.operations.html
+++ b/docs/dyn/runtimeconfig_v1.operations.html
@@ -189,22 +189,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,6 +252,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/runtimeconfig_v1beta1.projects.configs.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
index fb03b2a..52faa4f 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.html
@@ -90,35 +90,35 @@
 <p class="firstline">Returns the waiters Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, requestId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, requestId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a new RuntimeConfig resource. The configuration name must be</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a RuntimeConfig resource.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets information about a RuntimeConfig resource.</p>
 <p class="toc_element">
-  <code><a href="#getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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>
+  <code><a href="#list">list(parent, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
 <p class="firstline">Lists all the RuntimeConfig resources within 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=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <p class="toc_element">
-  <code><a href="#update">update(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates a RuntimeConfig resource. The configuration must exist beforehand.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, requestId=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, requestId=None, x__xgafv=None)</code>
   <pre>Creates a new RuntimeConfig resource. The configuration name must be
 unique within project.
 
@@ -182,7 +182,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a RuntimeConfig resource.
 
 Args:
@@ -210,7 +210,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets information about a RuntimeConfig resource.
 
 Args:
@@ -244,7 +244,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -324,6 +324,7 @@
         ],
       },
     ],
+    "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
@@ -334,12 +335,11 @@
         #
         # 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>
 
 <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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists all the RuntimeConfig resources within project.
 
 Args:
@@ -401,7 +401,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -479,6 +479,7 @@
           ],
         },
       ],
+      "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
@@ -489,7 +490,6 @@
           #
           # 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.
     },
   }
 
@@ -565,6 +565,7 @@
         ],
       },
     ],
+    "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
@@ -575,12 +576,11 @@
         #
         # 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>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
@@ -621,7 +621,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(name, body, x__xgafv=None)</code>
   <pre>Updates a RuntimeConfig resource. The configuration must exist beforehand.
 
 Args:
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
index bfdb22e..d4aaaf9 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.operations.html
@@ -78,7 +78,7 @@
   <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="#testIamPermissions">testIamPermissions(resource=None, x__xgafv=None, permissions=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=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">
@@ -188,7 +188,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, x__xgafv=None, permissions=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=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.
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
index fc4d1db..17d3516 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.variables.html
@@ -75,32 +75,32 @@
 <h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.variables.html">variables</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, requestId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, requestId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a variable within the given configuration. You cannot create</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name=None, recursive=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, recursive=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a variable or multiple variables.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name, 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, returnValues=None, filter=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, 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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, x__xgafv=None, permissions=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=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="#update">update(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates an existing variable with a new value.</p>
 <p class="toc_element">
-  <code><a href="#watch">watch(name=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#watch">watch(name, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Watches a specific variable and waits for a change in the variable's value.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, requestId=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, requestId=None, x__xgafv=None)</code>
   <pre>Creates a variable within the given configuration. You cannot create
 a variable with a name that is a prefix of an existing variable name, or a
 name that has an existing variable name as a prefix.
@@ -203,7 +203,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, recursive=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, recursive=None, x__xgafv=None)</code>
   <pre>Deletes a variable or multiple variables.
 
 If you specify a variable name, then that variable is deleted. If you
@@ -238,7 +238,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets information about a single variable.
 
 Args:
@@ -288,7 +288,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, returnValues=None, filter=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, 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, unless `return_values` is
 true, in which case only variables that user has IAM permission to GetVariable
@@ -376,7 +376,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, x__xgafv=None, permissions=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=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.
@@ -409,7 +409,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(name, body, x__xgafv=None)</code>
   <pre>Updates an existing variable with a new value.
 
 Args:
@@ -495,7 +495,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="watch">watch(name, body, x__xgafv=None)</code>
   <pre>Watches a specific variable and waits for a change in the variable's value.
 When there is a change, this method returns the new value or times out.
 
diff --git a/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html b/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
index 1a2eefb..5ce5a1b 100644
--- a/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
+++ b/docs/dyn/runtimeconfig_v1beta1.projects.configs.waiters.html
@@ -75,26 +75,26 @@
 <h1><a href="runtimeconfig_v1beta1.html">Google Cloud RuntimeConfig API</a> . <a href="runtimeconfig_v1beta1.projects.html">projects</a> . <a href="runtimeconfig_v1beta1.projects.configs.html">configs</a> . <a href="runtimeconfig_v1beta1.projects.configs.waiters.html">waiters</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(parent=None, body, requestId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body, requestId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a Waiter resource. This operation returns a long-running Operation</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes the waiter with the specified name.</p>
 <p class="toc_element">
-  <code><a href="#get">get(name=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(name, 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, 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>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#testIamPermissions">testIamPermissions(resource=None, x__xgafv=None, permissions=None)</a></code></p>
+  <code><a href="#testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=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, requestId=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body, requestId=None, x__xgafv=None)</code>
   <pre>Creates a Waiter resource. This operation returns a long-running Operation
 resource which can be polled for completion. However, a waiter with the
 given name will exist (and can be retrieved) prior to the operation
@@ -368,7 +368,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes the waiter with the specified name.
 
 Args:
@@ -396,7 +396,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets information about a single waiter.
 
 Args:
@@ -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, 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:
@@ -760,7 +760,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, x__xgafv=None, permissions=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, x__xgafv=None, permissions=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.
diff --git a/docs/dyn/safebrowsing_v4.encodedUpdates.html b/docs/dyn/safebrowsing_v4.encodedUpdates.html
index 3588454..7abd452 100644
--- a/docs/dyn/safebrowsing_v4.encodedUpdates.html
+++ b/docs/dyn/safebrowsing_v4.encodedUpdates.html
@@ -111,12 +111,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
@@ -129,12 +129,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
@@ -173,12 +173,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
@@ -191,12 +191,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
diff --git a/docs/dyn/safebrowsing_v4.fullHashes.html b/docs/dyn/safebrowsing_v4.fullHashes.html
index 2647d59..4e1ab19 100644
--- a/docs/dyn/safebrowsing_v4.fullHashes.html
+++ b/docs/dyn/safebrowsing_v4.fullHashes.html
@@ -88,15 +88,15 @@
 
 { # 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.
+      "clientVersion": "A String", # The version of the client implementation.
     },
     "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.
+      "clientVersion": "A String", # The version of the client implementation.
     },
     "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.
diff --git a/docs/dyn/safebrowsing_v4.threatListUpdates.html b/docs/dyn/safebrowsing_v4.threatListUpdates.html
index 049fffd..ccf47dc 100644
--- a/docs/dyn/safebrowsing_v4.threatListUpdates.html
+++ b/docs/dyn/safebrowsing_v4.threatListUpdates.html
@@ -92,17 +92,17 @@
       # 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.
+      "clientVersion": "A String", # The version of the client implementation.
     },
     "listUpdateRequests": [ # The requested threat list updates.
       { # A single list update request.
+        "platformType": "A String", # The type of platform at risk by entries present in the list.
         "threatType": "A String", # The type of threat posed by entries present in the list.
+        "threatEntryType": "A String", # The types of 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
@@ -145,12 +145,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
@@ -163,12 +163,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
@@ -207,12 +207,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
@@ -225,12 +225,12 @@
                 # 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.
+              "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`.
-              "encodedData": "A String", # The encoded deltas that are encoded using the Golomb-Rice coder.
+              "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.
             },
diff --git a/docs/dyn/safebrowsing_v4.threatMatches.html b/docs/dyn/safebrowsing_v4.threatMatches.html
index 3379a46..f4f0f09 100644
--- a/docs/dyn/safebrowsing_v4.threatMatches.html
+++ b/docs/dyn/safebrowsing_v4.threatMatches.html
@@ -88,9 +88,9 @@
 
 { # 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.
+      "clientVersion": "A String", # The version of the client implementation.
     },
     "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.
diff --git a/docs/dyn/script_v1.scripts.html b/docs/dyn/script_v1.scripts.html
index d40b75a..0088741 100644
--- a/docs/dyn/script_v1.scripts.html
+++ b/docs/dyn/script_v1.scripts.html
@@ -75,11 +75,11 @@
 <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=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#run">run(scriptId, 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=None, body, x__xgafv=None)</code>
+    <code class="details" id="run">run(scriptId, 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.
 
diff --git a/docs/dyn/servicecontrol_v1.services.html b/docs/dyn/servicecontrol_v1.services.html
index 928e631..e58d8b1 100644
--- a/docs/dyn/servicecontrol_v1.services.html
+++ b/docs/dyn/servicecontrol_v1.services.html
@@ -75,26 +75,26 @@
 <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>
+  <code><a href="#allocateQuota">allocateQuota(serviceName, 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>
+  <code><a href="#check">check(serviceName, 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>
+  <code><a href="#endReconciliation">endReconciliation(serviceName, 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>
+  <code><a href="#releaseQuota">releaseQuota(serviceName, 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>
+  <code><a href="#report">report(serviceName, 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>
+  <code><a href="#startReconciliation">startReconciliation(serviceName, 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="allocateQuota">allocateQuota(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="allocateQuota">allocateQuota(serviceName, body, x__xgafv=None)</code>
   <pre>Attempts to allocate quota for the specified consumer. It should be called
 before the operation is executed.
 
@@ -286,6 +286,15 @@
   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:
@@ -416,22 +425,13 @@
         "metricName": "A String", # The metric name defined in the service configuration.
       },
     ],
-    "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>".
-      },
-    ],
     "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>
+    <code class="details" id="check">check(serviceName, 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.
@@ -603,6 +603,12 @@
       ],
       "importance": "A String", # DO NOT USE. This is an experimental field.
       "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
+      "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:
+          #     - “projects/<project-id or project-number>”
+          #     - “folders/<folder-id>”
+          #     - “organizations/<organization-id>”
       "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.
         "quotaMode": "A String", # Quota mode for this operation.
@@ -620,12 +626,15 @@
           "a_key": "A String",
         },
       },
-      "resourceContainer": "A String", # The resource name of the parent of a resource in the resource hierarchy.
+      "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:
-          #     - “projects/<project-id or project-number>”
-          #     - “folders/<folder-id>”
-          #     - “organizations/<organization-id>”
+          #   project:<project_id>,
+          #   project_number:<project_number>,
+          #   api_key:<api_key>.
       "userLabels": { # User defined labels for the resource that this operation is associated
           # with.
         "a_key": "A String",
@@ -656,15 +665,6 @@
               # `"book_log"`.
         },
       ],
-      "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>.
       "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,
@@ -856,7 +856,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="endReconciliation">endReconciliation(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="endReconciliation">endReconciliation(serviceName, body, x__xgafv=None)</code>
   <pre>Signals the quota controller that service ends the ongoing usage
 reconciliation.
 
@@ -1183,7 +1183,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="releaseQuota">releaseQuota(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="releaseQuota">releaseQuota(serviceName, body, x__xgafv=None)</code>
   <pre>Releases previously allocated quota done through AllocateQuota method.
 
 This method requires the `servicemanagement.services.quota`
@@ -1513,7 +1513,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="report">report(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="report">report(serviceName, 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.
 
@@ -1689,6 +1689,12 @@
         ],
         "importance": "A String", # DO NOT USE. This is an experimental field.
         "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
+        "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:
+            #     - “projects/<project-id or project-number>”
+            #     - “folders/<folder-id>”
+            #     - “organizations/<organization-id>”
         "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.
           "quotaMode": "A String", # Quota mode for this operation.
@@ -1706,12 +1712,15 @@
             "a_key": "A String",
           },
         },
-        "resourceContainer": "A String", # The resource name of the parent of a resource in the resource hierarchy.
+        "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:
-            #     - “projects/<project-id or project-number>”
-            #     - “folders/<folder-id>”
-            #     - “organizations/<organization-id>”
+            #   project:<project_id>,
+            #   project_number:<project_number>,
+            #   api_key:<api_key>.
         "userLabels": { # User defined labels for the resource that this operation is associated
             # with.
           "a_key": "A String",
@@ -1742,15 +1751,6 @@
                 # `"book_log"`.
           },
         ],
-        "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>.
         "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,
@@ -2020,7 +2020,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="startReconciliation">startReconciliation(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="startReconciliation">startReconciliation(serviceName, 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
diff --git a/docs/dyn/servicemanagement_v1.operations.html b/docs/dyn/servicemanagement_v1.operations.html
index 26e7533..0e222d0 100644
--- a/docs/dyn/servicemanagement_v1.operations.html
+++ b/docs/dyn/servicemanagement_v1.operations.html
@@ -228,7 +228,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.
@@ -319,6 +318,7 @@
             # `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/servicemanagement_v1.services.configs.html b/docs/dyn/servicemanagement_v1.services.configs.html
index de8c44b..dee0d71 100644
--- a/docs/dyn/servicemanagement_v1.services.configs.html
+++ b/docs/dyn/servicemanagement_v1.services.configs.html
@@ -75,23 +75,23 @@
 <h1><a href="servicemanagement_v1.html">Google Service Management API</a> . <a href="servicemanagement_v1.services.html">services</a> . <a href="servicemanagement_v1.services.configs.html">configs</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(serviceName=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(serviceName, 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, view=None)</a></code></p>
+  <code><a href="#get">get(serviceName, 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>
+  <code><a href="#list">list(serviceName, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the history of the service configuration for a managed 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="#submit">submit(serviceName=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#submit">submit(serviceName, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a new service configuration (version) for a managed service based</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(serviceName, body, x__xgafv=None)</code>
   <pre>Creates a new service configuration (version) for a managed service.
 This method only stores the service configuration. To roll out the service
 configuration to backend systems please call
@@ -143,10 +143,9 @@
         # Different APIs can support different monitored resource types. APIs generally
         # provide a `list` method that returns the monitored resource descriptors used
         # by the API.
-      "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"`.
+      "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"`.
@@ -156,9 +155,10 @@
           "key": "A String", # The label key.
         },
       ],
-      "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.
+      "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
@@ -189,17 +189,73 @@
       ],
       "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.
     },
   ],
-  "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.
+      },
+    ],
+  },
   "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.
         #
@@ -280,65 +336,10 @@
       },
     ],
   },
-  "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.
-      },
-    ],
-  },
+  "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.
   "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
       #
       # Example for an API targeted for external use:
@@ -496,11 +497,11 @@
           #       rules:
           #       - selector: "google.example.library.v1.LibraryService.CreateBook"
           #         allow_unregistered_calls: true
-        "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
         "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
@@ -740,9 +741,6 @@
             # `*` 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
@@ -770,18 +768,21 @@
               #
               # 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.
             # 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.
         "patch": "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.
       },
     ],
@@ -1025,14 +1026,7 @@
         # 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".
-      "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"
+      "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.
@@ -1120,7 +1114,14 @@
           #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
           # * `NAME` is a sequence of non-blank printable ASCII characters not
           #    containing '{' or '}'.
-      "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"
     },
   ],
   "enums": [ # A list of all enum types included in this API service.  Enums
@@ -1131,11 +1132,28 @@
       #     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"`.
       },
+      "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.
       "enumvalue": [ # Enum value definitions.
         { # Enum value definition.
           "number": 42, # Enum value number.
@@ -1157,23 +1175,6 @@
           ],
         },
       ],
-      "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.
@@ -1515,16 +1516,15 @@
         "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.
         "requested": [ # A list of full type names of requested 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.
@@ -1550,18 +1550,18 @@
           # 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.
+      "apis": [ # The list of APIs served by this endpoint.
         "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.
+      "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",
       ],
     },
@@ -1632,10 +1632,9 @@
           # Different APIs can support different monitored resource types. APIs generally
           # provide a `list` method that returns the monitored resource descriptors used
           # by the API.
-        "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"`.
+        "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"`.
@@ -1645,9 +1644,10 @@
             "key": "A String", # The label key.
           },
         ],
-        "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.
+        "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
@@ -1678,17 +1678,73 @@
         ],
         "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.
       },
     ],
-    "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.
+        },
+      ],
+    },
     "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.
           #
@@ -1769,65 +1825,10 @@
         },
       ],
     },
-    "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.
-        },
-      ],
-    },
+    "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.
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -1985,11 +1986,11 @@
             #       rules:
             #       - selector: "google.example.library.v1.LibraryService.CreateBook"
             #         allow_unregistered_calls: true
-          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
           "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
@@ -2229,9 +2230,6 @@
               # `*` 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
@@ -2259,18 +2257,21 @@
                 #
                 # 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.
               # 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.
           "patch": "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.
         },
       ],
@@ -2514,14 +2515,7 @@
           # 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".
-        "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"
+        "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.
@@ -2609,7 +2603,14 @@
             #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
             # * `NAME` is a sequence of non-blank printable ASCII characters not
             #    containing '{' or '}'.
-        "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"
       },
     ],
     "enums": [ # A list of all enum types included in this API service.  Enums
@@ -2620,11 +2621,28 @@
         #     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"`.
         },
+        "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.
         "enumvalue": [ # Enum value definitions.
           { # Enum value definition.
             "number": 42, # Enum value number.
@@ -2646,23 +2664,6 @@
             ],
           },
         ],
-        "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.
@@ -3004,16 +3005,15 @@
           "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.
           "requested": [ # A list of full type names of requested 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.
@@ -3039,18 +3039,18 @@
             # 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.
+        "apis": [ # The list of APIs served by this endpoint.
           "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.
+        "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",
         ],
       },
@@ -3075,7 +3075,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(serviceName=None, configId, x__xgafv=None, view=None)</code>
+    <code class="details" id="get">get(serviceName, configId, x__xgafv=None, view=None)</code>
   <pre>Gets a service configuration (version) for a managed service.
 
 Args:
@@ -3132,10 +3132,9 @@
           # Different APIs can support different monitored resource types. APIs generally
           # provide a `list` method that returns the monitored resource descriptors used
           # by the API.
-        "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"`.
+        "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"`.
@@ -3145,9 +3144,10 @@
             "key": "A String", # The label key.
           },
         ],
-        "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.
+        "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
@@ -3178,17 +3178,73 @@
         ],
         "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.
       },
     ],
-    "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.
+        },
+      ],
+    },
     "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.
           #
@@ -3269,65 +3325,10 @@
         },
       ],
     },
-    "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.
-        },
-      ],
-    },
+    "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.
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -3485,11 +3486,11 @@
             #       rules:
             #       - selector: "google.example.library.v1.LibraryService.CreateBook"
             #         allow_unregistered_calls: true
-          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
           "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
@@ -3729,9 +3730,6 @@
               # `*` 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
@@ -3759,18 +3757,21 @@
                 #
                 # 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.
               # 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.
           "patch": "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.
         },
       ],
@@ -4014,14 +4015,7 @@
           # 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".
-        "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"
+        "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.
@@ -4109,7 +4103,14 @@
             #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
             # * `NAME` is a sequence of non-blank printable ASCII characters not
             #    containing '{' or '}'.
-        "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"
       },
     ],
     "enums": [ # A list of all enum types included in this API service.  Enums
@@ -4120,11 +4121,28 @@
         #     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"`.
         },
+        "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.
         "enumvalue": [ # Enum value definitions.
           { # Enum value definition.
             "number": 42, # Enum value number.
@@ -4146,23 +4164,6 @@
             ],
           },
         ],
-        "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.
@@ -4504,16 +4505,15 @@
           "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.
           "requested": [ # A list of full type names of requested 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.
@@ -4539,18 +4539,18 @@
             # 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.
+        "apis": [ # The list of APIs served by this endpoint.
           "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.
+        "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",
         ],
       },
@@ -4575,7 +4575,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(serviceName=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(serviceName, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the history of the service configuration for a managed service,
 from the newest to the oldest.
 
@@ -4635,10 +4635,9 @@
               # Different APIs can support different monitored resource types. APIs generally
               # provide a `list` method that returns the monitored resource descriptors used
               # by the API.
-            "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"`.
+            "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"`.
@@ -4648,9 +4647,10 @@
                 "key": "A String", # The label key.
               },
             ],
-            "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.
+            "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
@@ -4681,17 +4681,73 @@
             ],
             "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.
           },
         ],
-        "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.
+            },
+          ],
+        },
         "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.
               #
@@ -4772,65 +4828,10 @@
             },
           ],
         },
-        "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.
-            },
-          ],
-        },
+        "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.
         "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
             #
             # Example for an API targeted for external use:
@@ -4988,11 +4989,11 @@
                 #       rules:
                 #       - selector: "google.example.library.v1.LibraryService.CreateBook"
                 #         allow_unregistered_calls: true
-              "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
               "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
@@ -5232,9 +5233,6 @@
                   # `*` 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
@@ -5262,18 +5260,21 @@
                     #
                     # 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.
                   # 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.
               "patch": "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.
             },
           ],
@@ -5517,14 +5518,7 @@
               # 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".
-            "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"
+            "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.
@@ -5612,7 +5606,14 @@
                 #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
                 # * `NAME` is a sequence of non-blank printable ASCII characters not
                 #    containing '{' or '}'.
-            "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"
           },
         ],
         "enums": [ # A list of all enum types included in this API service.  Enums
@@ -5623,11 +5624,28 @@
             #     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"`.
             },
+            "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.
             "enumvalue": [ # Enum value definitions.
               { # Enum value definition.
                 "number": 42, # Enum value number.
@@ -5649,23 +5667,6 @@
                 ],
               },
             ],
-            "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.
@@ -6007,16 +6008,15 @@
               "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.
               "requested": [ # A list of full type names of requested 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.
@@ -6042,18 +6042,18 @@
                 # 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.
+            "apis": [ # The list of APIs served by this endpoint.
               "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.
+            "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",
             ],
           },
@@ -6094,7 +6094,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="submit">submit(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="submit">submit(serviceName, body, x__xgafv=None)</code>
   <pre>Creates a new service configuration (version) for a managed service based
 on
 user-supplied configuration source files (for example: OpenAPI
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index d1aebf3..f6006ca 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -88,25 +88,25 @@
   <code><a href="#create">create(body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a new managed service.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(serviceName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(serviceName, x__xgafv=None)</a></code></p>
 <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>
+  <code><a href="#disable">disable(serviceName, body, x__xgafv=None)</a></code></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>
+  <code><a href="#enable">enable(serviceName, body, x__xgafv=None)</a></code></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>
 <p class="toc_element">
-  <code><a href="#get">get(serviceName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(serviceName, 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, view=None)</a></code></p>
+  <code><a href="#getConfig">getConfig(serviceName, 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>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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, pageToken=None, consumerId=None, x__xgafv=None)</a></code></p>
@@ -115,13 +115,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="#setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <p class="toc_element">
-  <code><a href="#undelete">undelete(serviceName=None, x__xgafv=None)</a></code></p>
+  <code><a href="#undelete">undelete(serviceName, x__xgafv=None)</a></code></p>
 <p class="firstline">Revives a previously deleted managed service. The method restores the</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -241,7 +241,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(serviceName=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(serviceName, x__xgafv=None)</code>
   <pre>Deletes a managed service. This method will change the service to the
 `Soft-Delete` state for 30 days. Within this period, service producers may
 call UndeleteService to restore the service.
@@ -351,7 +351,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="disable">disable(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="disable">disable(serviceName, body, x__xgafv=None)</code>
   <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.
@@ -475,7 +475,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="enable">enable(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="enable">enable(serviceName, body, x__xgafv=None)</code>
   <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
@@ -701,7 +701,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(serviceName=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(serviceName, x__xgafv=None)</code>
   <pre>Gets a managed service. Authentication is required unless the service is
 public.
 
@@ -725,7 +725,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getConfig">getConfig(serviceName=None, configId=None, x__xgafv=None, view=None)</code>
+    <code class="details" id="getConfig">getConfig(serviceName, configId=None, x__xgafv=None, view=None)</code>
   <pre>Gets a service configuration (version) for a managed service.
 
 Args:
@@ -782,10 +782,9 @@
           # Different APIs can support different monitored resource types. APIs generally
           # provide a `list` method that returns the monitored resource descriptors used
           # by the API.
-        "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"`.
+        "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"`.
@@ -795,9 +794,10 @@
             "key": "A String", # The label key.
           },
         ],
-        "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.
+        "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
@@ -828,17 +828,73 @@
         ],
         "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.
       },
     ],
-    "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.
+        },
+      ],
+    },
     "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.
           #
@@ -919,65 +975,10 @@
         },
       ],
     },
-    "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.
-        },
-      ],
-    },
+    "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.
     "authentication": { # `Authentication` defines the authentication configuration for an API. # Auth configuration.
         #
         # Example for an API targeted for external use:
@@ -1135,11 +1136,11 @@
             #       rules:
             #       - selector: "google.example.library.v1.LibraryService.CreateBook"
             #         allow_unregistered_calls: true
-          "allowUnregisteredCalls": True or False, # True, if the method allows unregistered calls; false otherwise.
           "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
@@ -1379,9 +1380,6 @@
               # `*` 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
@@ -1409,18 +1407,21 @@
                 #
                 # 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.
               # 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.
           "patch": "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.
         },
       ],
@@ -1664,14 +1665,7 @@
           # 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".
-        "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"
+        "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.
@@ -1759,7 +1753,14 @@
             #    `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.
             # * `NAME` is a sequence of non-blank printable ASCII characters not
             #    containing '{' or '}'.
-        "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"
       },
     ],
     "enums": [ # A list of all enum types included in this API service.  Enums
@@ -1770,11 +1771,28 @@
         #     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"`.
         },
+        "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.
         "enumvalue": [ # Enum value definitions.
           { # Enum value definition.
             "number": 42, # Enum value number.
@@ -1796,23 +1814,6 @@
             ],
           },
         ],
-        "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.
@@ -2154,16 +2155,15 @@
           "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.
           "requested": [ # A list of full type names of requested 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.
@@ -2189,18 +2189,18 @@
             # 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.
+        "apis": [ # The list of APIs served by this endpoint.
           "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.
+        "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",
         ],
       },
@@ -2225,7 +2225,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, body, 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.
@@ -2525,7 +2525,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -2993,7 +2993,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
@@ -3034,7 +3034,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="undelete">undelete(serviceName=None, x__xgafv=None)</code>
+    <code class="details" id="undelete">undelete(serviceName, x__xgafv=None)</code>
   <pre>Revives a previously deleted managed service. The method restores the
 service using the configuration at the time the service was deleted.
 The target service must exist and must have been deleted within the
diff --git a/docs/dyn/servicemanagement_v1.services.rollouts.html b/docs/dyn/servicemanagement_v1.services.rollouts.html
index 7bf92d0..a95912d 100644
--- a/docs/dyn/servicemanagement_v1.services.rollouts.html
+++ b/docs/dyn/servicemanagement_v1.services.rollouts.html
@@ -75,20 +75,20 @@
 <h1><a href="servicemanagement_v1.html">Google Service Management API</a> . <a href="servicemanagement_v1.services.html">services</a> . <a href="servicemanagement_v1.services.rollouts.html">rollouts</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#create">create(serviceName=None, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(serviceName, body, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a new service configuration rollout. Based on rollout, the</p>
 <p class="toc_element">
-  <code><a href="#get">get(serviceName=None, rolloutId, x__xgafv=None)</a></code></p>
+  <code><a href="#get">get(serviceName, rolloutId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a service configuration rollout.</p>
 <p class="toc_element">
-  <code><a href="#list">list(serviceName=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(serviceName, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the history of the service configuration rollouts for a managed</p>
 <p class="toc_element">
   <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(serviceName=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(serviceName, body, x__xgafv=None)</code>
   <pre>Creates a new service configuration rollout. Based on rollout, the
 Google Service Management will roll out the service configurations to
 different backend services. For example, the logging configuration will be
@@ -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.
   }
 
@@ -264,7 +264,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(serviceName=None, rolloutId, x__xgafv=None)</code>
+    <code class="details" id="get">get(serviceName, rolloutId, x__xgafv=None)</code>
   <pre>Gets a service configuration rollout.
 
 Args:
@@ -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,18 +321,26 @@
           "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>
 
 <div class="method">
-    <code class="details" id="list">list(serviceName=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(serviceName, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the history of the service configuration rollouts for a managed
 service, from the newest to the oldest.
 
@@ -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.projects.services.html b/docs/dyn/serviceuser_v1.projects.services.html
index 99d4f8a..e9d2bf5 100644
--- a/docs/dyn/serviceuser_v1.projects.services.html
+++ b/docs/dyn/serviceuser_v1.projects.services.html
@@ -75,20 +75,20 @@
 <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>
+  <code><a href="#disable">disable(name, 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>
+  <code><a href="#enable">enable(name, 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>
+  <code><a href="#list">list(parent, 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>
+    <code class="details" id="disable">disable(name, 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.
@@ -208,7 +208,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="enable">enable(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="enable">enable(name, 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.
@@ -325,7 +325,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>List enabled services for the specified consumer.
 
 Args:
@@ -392,10 +392,9 @@
                 # Different APIs can support different monitored resource types. APIs generally
                 # provide a `list` method that returns the monitored resource descriptors used
                 # by the API.
-              "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"`.
+              "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"`.
@@ -405,9 +404,10 @@
                   "key": "A String", # The label key.
                 },
               ],
-              "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.
+              "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
@@ -493,9 +493,9 @@
                       # 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.
-                    "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
@@ -641,13 +641,6 @@
                       #      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).
@@ -674,6 +667,13 @@
                         #                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.
@@ -990,6 +990,9 @@
                     # `*` 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
@@ -1017,16 +1020,13 @@
                       #
                       # Specify name of the upload service if one is used for upload.
                 },
-                "selector": "A String", # Selects methods to which this rule applies.
-                    #
-                    # Refer to selector for syntax details.
+                "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.
-                "patch": "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.
@@ -1275,7 +1275,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.
@@ -1363,14 +1370,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 `my-project-id`:
-                  #
-                  #     "projects/my-project-id/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
@@ -1405,8 +1405,6 @@
               "name": "A String", # Enum type name.
               "enumvalue": [ # Enum value definitions.
                 { # Enum value definition.
-                  "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.
@@ -1422,6 +1420,8 @@
                       },
                     },
                   ],
+                  "number": 42, # Enum value number.
+                  "name": "A String", # Enum value name.
                 },
               ],
             },
@@ -1439,12 +1439,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.
@@ -1475,6 +1469,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.
@@ -1687,12 +1687,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.
@@ -1723,6 +1717,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.
diff --git a/docs/dyn/serviceuser_v1.services.html b/docs/dyn/serviceuser_v1.services.html
index ef95b92..74882e3 100644
--- a/docs/dyn/serviceuser_v1.services.html
+++ b/docs/dyn/serviceuser_v1.services.html
@@ -149,10 +149,9 @@
                 # Different APIs can support different monitored resource types. APIs generally
                 # provide a `list` method that returns the monitored resource descriptors used
                 # by the API.
-              "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"`.
+              "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"`.
@@ -162,9 +161,10 @@
                   "key": "A String", # The label key.
                 },
               ],
-              "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.
+              "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
@@ -250,9 +250,9 @@
                       # 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.
-                    "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
@@ -398,13 +398,6 @@
                       #      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).
@@ -431,6 +424,13 @@
                         #                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.
@@ -747,6 +747,9 @@
                     # `*` 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
@@ -774,16 +777,13 @@
                       #
                       # Specify name of the upload service if one is used for upload.
                 },
-                "selector": "A String", # Selects methods to which this rule applies.
-                    #
-                    # Refer to selector for syntax details.
+                "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.
-                "patch": "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.
@@ -1032,7 +1032,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.
@@ -1120,14 +1127,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 `my-project-id`:
-                  #
-                  #     "projects/my-project-id/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
@@ -1162,8 +1162,6 @@
               "name": "A String", # Enum type name.
               "enumvalue": [ # Enum value definitions.
                 { # Enum value definition.
-                  "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.
@@ -1179,6 +1177,8 @@
                       },
                     },
                   ],
+                  "number": 42, # Enum value number.
+                  "name": "A String", # Enum value name.
                 },
               ],
             },
@@ -1196,12 +1196,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.
@@ -1232,6 +1226,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.
@@ -1444,12 +1444,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.
@@ -1480,6 +1474,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.
diff --git a/docs/dyn/sheets_v4.spreadsheets.html b/docs/dyn/sheets_v4.spreadsheets.html
index 5d1b646..d702068 100644
--- a/docs/dyn/sheets_v4.spreadsheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.html
@@ -162,10 +162,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.
-            "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.
             "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.
+            "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.
@@ -193,9 +193,9 @@
                 "columnIndex": 42, # The column index of the coordinate.
                 "sheetId": 42, # The sheet this coordinate is on.
               },
-              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                   # from the anchor cell.
+              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                   # from the anchor cell.
               "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -212,7 +212,6 @@
         },
         "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.
           "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.
@@ -246,10 +245,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -301,7 +300,7 @@
                   "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.
+                "verticalAlignment": "A String", # The vertical 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.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
@@ -431,7 +430,7 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                     # Absent values indicate that the field isn't specified.
                   "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -1552,6 +1551,7 @@
           "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.
+          "index": 42, # The zero-based index of the rule that should be replaced or moved.
         },
         "updateProtectedRange": { # Updates an existing protected range with the specified # Updates a protected range.
             # protectedRangeId.
@@ -1591,10 +1591,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -1605,30 +1605,6 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -1664,11 +1640,35 @@
                 # 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.
+              "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.
-              "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.
             },
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
           },
         },
         "deleteDimension": { # Deletes the dimensions from the sheet. # Deletes rows or columns in a sheet.
@@ -1720,10 +1720,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -1734,30 +1734,6 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -1793,11 +1769,35 @@
                 # 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.
+              "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.
-              "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.
             },
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
           },
         },
         "deleteEmbeddedObject": { # Deletes the embedded object with the given ID. # Deletes an embedded object (e.g, chart, image) in a sheet.
@@ -1830,6 +1830,7 @@
                 # * 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.
+            "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
                 # cell's format is equal to this default format.
@@ -1850,7 +1851,7 @@
                 "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.
+              "verticalAlignment": "A String", # The vertical 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.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
@@ -1980,7 +1981,7 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                   # Absent values indicate that the field isn't specified.
                 "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -2680,7 +2681,6 @@
               },
               "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
             },
-            "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
             "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.
@@ -2809,15 +2809,20 @@
                         # 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.
+                      "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.
-                      "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.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
                         "formula": "A String", # A custom formula to calculate the value.  The formula must start
                             # with an `=` character.
+                        "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`.
                         "summarizeFunction": "A String", # A function to summarize the value.
                             # If formula is set, the only supported values are
                             # SUM and
@@ -2826,11 +2831,6 @@
                             # 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`.
                       },
                     ],
                     "criteria": { # An optional mapping of filters per source column offset.
@@ -2982,7 +2982,7 @@
                       "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.
+                    "verticalAlignment": "A String", # The vertical 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.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -3112,7 +3112,7 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
-                    "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                    "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                         # Absent values indicate that the field isn't specified.
                       "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -3831,7 +3831,7 @@
                       "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.
+                    "verticalAlignment": "A String", # The vertical 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.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -3961,7 +3961,7 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
-                    "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                    "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                         # Absent values indicate that the field isn't specified.
                       "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -4886,10 +4886,10 @@
                 # this field will be absent.)
                 # When writing it is an error to set any grid properties on non-grid sheets.
               "columnCount": 42, # The number of columns in the grid.
-              "rowCount": 42, # The number of rows in the grid.
+              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
               "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
               "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+              "rowCount": 42, # The number of rows in the grid.
             },
             "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
             "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
@@ -5044,9 +5044,9 @@
                   "columnIndex": 42, # The column index of the coordinate.
                   "sheetId": 42, # The sheet this coordinate is on.
                 },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                     # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                     # from the anchor cell.
                 "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -5104,10 +5104,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -5161,10 +5161,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -5236,10 +5236,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -5314,10 +5314,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -5330,8 +5330,6 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -5471,6 +5469,8 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
@@ -5514,10 +5514,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -5569,7 +5569,7 @@
                   "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.
+                "verticalAlignment": "A String", # The vertical 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.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
@@ -5699,7 +5699,7 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                     # Absent values indicate that the field isn't specified.
                   "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -6939,15 +6939,20 @@
                   # 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.
+                "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.
-                "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.
               },
               "values": [ # A list of values to include in the pivot table.
                 { # The definition of how a value in a pivot table should be calculated.
                   "formula": "A String", # A custom formula to calculate the value.  The formula must start
                       # with an `=` character.
+                  "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`.
                   "summarizeFunction": "A String", # A function to summarize the value.
                       # If formula is set, the only supported values are
                       # SUM and
@@ -6956,11 +6961,6 @@
                       # 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`.
                 },
               ],
               "criteria": { # An optional mapping of filters per source column offset.
@@ -7112,7 +7112,7 @@
                 "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.
+              "verticalAlignment": "A String", # The vertical 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.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
@@ -7242,7 +7242,7 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                   # Absent values indicate that the field isn't specified.
                 "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -7961,7 +7961,7 @@
                 "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.
+              "verticalAlignment": "A String", # The vertical 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.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
@@ -8091,7 +8091,7 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                   # Absent values indicate that the field isn't specified.
                 "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -9011,10 +9011,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -9054,10 +9054,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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
@@ -9102,10 +9102,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.
-              "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.
               "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.
+              "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.
@@ -9152,45 +9152,98 @@
             },
           },
         },
-        "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.
+        "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.
+                  "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.
+                },
+              },
+            },
           },
-          "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.
         },
         "updateCells": { # Updates all cells in a range with new data. # Updates many cells at once.
           "start": { # A coordinate in a sheet. # The coordinate to start writing data at.
@@ -9234,10 +9287,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           },
           "rows": [ # The data to write.
             { # Data about each cell in a row.
@@ -9347,15 +9400,20 @@
                         # 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.
+                      "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.
-                      "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.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
                         "formula": "A String", # A custom formula to calculate the value.  The formula must start
                             # with an `=` character.
+                        "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`.
                         "summarizeFunction": "A String", # A function to summarize the value.
                             # If formula is set, the only supported values are
                             # SUM and
@@ -9364,11 +9422,6 @@
                             # 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`.
                       },
                     ],
                     "criteria": { # An optional mapping of filters per source column offset.
@@ -9520,7 +9573,7 @@
                       "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.
+                    "verticalAlignment": "A String", # The vertical 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.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -9650,7 +9703,7 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
-                    "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                    "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                         # Absent values indicate that the field isn't specified.
                       "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -10369,7 +10422,7 @@
                       "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.
+                    "verticalAlignment": "A String", # The vertical 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.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -10499,7 +10552,7 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
-                    "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                    "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                         # Absent values indicate that the field isn't specified.
                       "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -11429,10 +11482,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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
@@ -11472,17 +11525,17 @@
                 # 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.
+              "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.
-              "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.
             },
           },
         },
         "appendDimension": { # Appends rows or columns to the end of a sheet. # Appends dimensions to the end of a sheet.
           "length": 42, # The number of rows or columns to append.
-          "dimension": "A String", # Whether rows or columns should be appended.
           "sheetId": 42, # The sheet to append rows or columns to.
+          "dimension": "A String", # Whether rows or columns should be appended.
         },
         "updateBanding": { # Updates properties of the supplied banded range. # Updates a banded range
           "fields": "A String", # The fields that should be updated.  At least one field must be specified.
@@ -11519,10 +11572,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) 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
@@ -12676,10 +12729,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -12714,10 +12767,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -12783,10 +12836,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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
@@ -12796,46 +12849,48 @@
         "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.
         },
-        "textToColumns": { # Splits a column of text into multiple columns, # Converts a column of text into many columns of text.
-            # based on a delimiter in each cell.
-          "source": { # A range on a sheet. # The source data range.  This must span exactly one column.
-              # 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.
+        "addNamedRange": { # Adds a named range to the spreadsheet. # Adds a named range.
+          "namedRange": { # A named range. # The named range to add. The namedRangeId
+              # field is optional; if one is not set, an id will be randomly generated. (It
+              # is an error to specify the ID of a range that already exists.)
+            "namedRangeId": "A String", # The ID of the named range.
+            "range": { # A range on a sheet. # The range this represents.
+                # 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.
+            },
+            "name": "A String", # The name of the named range.
           },
-          "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
-              # CUSTOM.
-          "delimiterType": "A String", # The delimiter type to use.
         },
         "updateChartSpec": { # Updates a chart's specifications. # Updates a chart's specifications.
             # (This does not move or resize a chart. To move or resize a chart, use
@@ -12893,10 +12948,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.
-                      "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.
                       "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.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -12950,10 +13005,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.
-                      "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.
                       "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.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -13025,10 +13080,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.
-                          "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.
                           "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.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -13103,10 +13158,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.
-                          "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.
                           "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.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -13119,8 +13174,6 @@
                     # A chart may not have more than one axis per
                     # axis position.
                   "position": "A String", # The position of this axis.
-                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                      # from headers of the data.
                   "format": { # The format of a run of text in a cell. # The format of the title.
                       # Only valid if the axis is not associated with the domain.
                       # Absent values indicate that the field isn't specified.
@@ -13260,6 +13313,8 @@
                     "italic": True or False, # True if the text is italicized.
                     "underline": True or False, # True if the text is underlined.
                   },
+                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                      # from headers of the data.
                 },
               ],
             },
@@ -13290,48 +13345,46 @@
               # (the zero-based index of row 5).
               # The end result would be `A1..A5` of `0, 3, 1, 2, 4`.
         },
-        "addNamedRange": { # Adds a named range to the spreadsheet. # Adds a named range.
-          "namedRange": { # A named range. # The named range to add. The namedRangeId
-              # field is optional; if one is not set, an id will be randomly generated. (It
-              # is an error to specify the ID of a range that already exists.)
-            "namedRangeId": "A String", # The ID of the named range.
-            "range": { # A range on a sheet. # The range this represents.
-                # 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.
-            },
-            "name": "A String", # The name of the named range.
+        "textToColumns": { # Splits a column of text into multiple columns, # Converts a column of text into many columns of text.
+            # based on a delimiter in each cell.
+          "source": { # A range on a sheet. # The source data range.  This must span exactly one column.
+              # 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.
           },
+          "delimiter": "A String", # The delimiter to use. Used only if delimiterType is
+              # CUSTOM.
+          "delimiterType": "A String", # The delimiter type to use.
         },
         "addBanding": { # Adds a new banded range to the spreadsheet. # Adds a new banded range
           "bandedRange": { # A banded (alternating colors) range in a sheet. # The banded range to add. The bandedRangeId
@@ -13367,10 +13420,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) 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
@@ -14489,108 +14542,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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.
-              "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.
-                },
-              },
-            },
+        "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.
+            "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.
           },
+          "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.
@@ -15172,10 +15172,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -15479,10 +15479,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -15523,10 +15523,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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
@@ -15562,10 +15562,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           },
           "pasteOrientation": "A String", # How that data should be oriented when pasting.
         },
@@ -15598,10 +15598,10 @@
                 # this field will be absent.)
                 # When writing it is an error to set any grid properties on non-grid sheets.
               "columnCount": 42, # The number of columns in the grid.
-              "rowCount": 42, # The number of rows in the grid.
+              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
               "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
               "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+              "rowCount": 42, # The number of rows in the grid.
             },
             "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
             "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
@@ -15778,10 +15778,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             },
             "name": "A String", # The name of the named range.
           },
@@ -15851,10 +15851,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.
-              "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.
               "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.
+              "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.
@@ -15965,10 +15965,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           },
           "name": "A String", # The name of the named range.
         },
@@ -15984,6 +15984,7 @@
             # * 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.
+        "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
             # cell's format is equal to this default format.
@@ -16004,7 +16005,7 @@
             "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.
+          "verticalAlignment": "A String", # The vertical 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.
               # for simplicity of conversion to/from color representations in various
               # languages over compactness; for example, the fields of this representation
@@ -16134,7 +16135,7 @@
             "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
             "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
           },
-          "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+          "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
           "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
               # Absent values indicate that the field isn't specified.
             "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -16834,7 +16835,6 @@
           },
           "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
         },
-        "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
         "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.
@@ -16884,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.
-                  "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.
                   "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.
+                  "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -16939,7 +16939,7 @@
                     "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.
+                  "verticalAlignment": "A String", # The vertical 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.
                       # for simplicity of conversion to/from color representations in various
                       # languages over compactness; for example, the fields of this representation
@@ -17069,7 +17069,7 @@
                     "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                     "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                   },
-                  "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                  "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                   "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                       # Absent values indicate that the field isn't specified.
                     "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -18220,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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
@@ -19339,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             },
           ],
           "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -19376,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.
-              "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.
               "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.
+              "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.
@@ -19440,9 +19440,9 @@
                     "columnIndex": 42, # The column index of the coordinate.
                     "sheetId": 42, # The sheet this coordinate is on.
                   },
-                  "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                   "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                       # from the anchor cell.
+                  "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                   "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                       # from the anchor cell.
                   "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -19500,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.
-                          "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.
                           "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.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -19557,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.
-                          "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.
                           "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.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -19632,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.
-                              "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.
                               "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.
+                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             },
                           ],
                         },
@@ -19710,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.
-                              "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.
                               "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.
+                              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                             },
                           ],
                         },
@@ -19726,8 +19726,6 @@
                         # A chart may not have more than one axis per
                         # axis position.
                       "position": "A String", # The position of this axis.
-                      "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                          # from headers of the data.
                       "format": { # The format of a run of text in a cell. # The format of the title.
                           # Only valid if the axis is not associated with the domain.
                           # Absent values indicate that the field isn't specified.
@@ -19867,6 +19865,8 @@
                         "italic": True or False, # True if the text is italicized.
                         "underline": True or False, # True if the text is underlined.
                       },
+                      "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                          # from headers of the data.
                     },
                   ],
                 },
@@ -19915,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.
-                "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.
                 "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.
+                "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.
@@ -19999,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.
-                  "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.
                   "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.
+                  "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                 },
               ],
               "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -20013,30 +20013,6 @@
                   #
                   # When writing, only one of range or named_range_id
                   # may be set.
-              "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                  # This field is only visible to users with edit access to the protected
-                  # range and the document.
-                  # Editors are not supported with warning_only protection.
-                "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                    # range.  Domain protection is only supported on documents within a domain.
-                "users": [ # The email addresses of users with edit access to the protected range.
-                  "A String",
-                ],
-                "groups": [ # The email addresses of groups with edit access to the protected range.
-                  "A String",
-                ],
-              },
-              "protectedRangeId": 42, # The ID of the protected range.
-                  # This field is read-only.
-              "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                  # Warning-based protection means that every user can edit data in the
-                  # protected range, except editing will prompt a warning asking the user
-                  # to confirm the edit.
-                  #
-                  # When writing: if this field is true, then editors is ignored.
-                  # Additionally, if this field is changed from true to false and the
-                  # `editors` field is not set (nor included in the field mask), then
-                  # the editors will be set to all the editors in the document.
               "range": { # A range on a sheet. # The range that is being protected.
                   # The range may be fully unbounded, in which case this is considered
                   # a protected sheet.
@@ -20072,11 +20048,35 @@
                   # 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.
+                "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.
-                "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.
               },
+              "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                  # This field is only visible to users with edit access to the protected
+                  # range and the document.
+                  # Editors are not supported with warning_only protection.
+                "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                    # range.  Domain protection is only supported on documents within a domain.
+                "users": [ # The email addresses of users with edit access to the protected range.
+                  "A String",
+                ],
+                "groups": [ # The email addresses of groups with edit access to the protected range.
+                  "A String",
+                ],
+              },
+              "protectedRangeId": 42, # The ID of the protected range.
+                  # This field is read-only.
+              "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                  # Warning-based protection means that every user can edit data in the
+                  # protected range, except editing will prompt a warning asking the user
+                  # to confirm the edit.
+                  #
+                  # When writing: if this field is true, then editors is ignored.
+                  # Additionally, if this field is changed from true to false and the
+                  # `editors` field is not set (nor included in the field mask), then
+                  # the editors will be set to all the editors in the document.
             },
           ],
           "data": [ # Data in the grid, if this is a grid sheet.
@@ -20088,7 +20088,15 @@
               # 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.
+                  "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.
+                },
+              ],
               "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.
@@ -20099,15 +20107,7 @@
                       # This field is read-only.
                 },
               ],
-              "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
-                  # in start_row.
-                { # 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.
-                },
-              ],
+              "startRow": 42, # The first row this GridData refers to, zero-based.
               "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
@@ -20219,15 +20219,20 @@
                             # 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.
+                          "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.
-                          "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.
                         },
                         "values": [ # A list of values to include in the pivot table.
                           { # The definition of how a value in a pivot table should be calculated.
                             "formula": "A String", # A custom formula to calculate the value.  The formula must start
                                 # with an `=` character.
+                            "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`.
                             "summarizeFunction": "A String", # A function to summarize the value.
                                 # If formula is set, the only supported values are
                                 # SUM and
@@ -20236,11 +20241,6 @@
                                 # 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`.
                           },
                         ],
                         "criteria": { # An optional mapping of filters per source column offset.
@@ -20392,7 +20392,7 @@
                           "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.
+                        "verticalAlignment": "A String", # The vertical 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.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -20522,7 +20522,7 @@
                           "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
-                        "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                        "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                         "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                             # Absent values indicate that the field isn't specified.
                           "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -21241,7 +21241,7 @@
                           "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.
+                        "verticalAlignment": "A String", # The vertical 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.
                             # for simplicity of conversion to/from color representations in various
                             # languages over compactness; for example, the fields of this representation
@@ -21371,7 +21371,7 @@
                           "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                         },
-                        "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                        "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                         "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                             # Absent values indicate that the field isn't specified.
                           "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -22282,10 +22282,10 @@
                 # this field will be absent.)
                 # When writing it is an error to set any grid properties on non-grid sheets.
               "columnCount": 42, # The number of columns in the grid.
-              "rowCount": 42, # The number of rows in the grid.
+              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
               "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
               "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+              "rowCount": 42, # The number of rows in the grid.
             },
             "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
             "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
@@ -22470,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.
-              "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.
               "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.
+              "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.
@@ -22540,10 +22540,10 @@
                 # this field will be absent.)
                 # When writing it is an error to set any grid properties on non-grid sheets.
               "columnCount": 42, # The number of columns in the grid.
-              "rowCount": 42, # The number of rows in the grid.
+              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
               "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
               "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+              "rowCount": 42, # The number of rows in the grid.
             },
             "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
             "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
@@ -22693,9 +22693,9 @@
                 "columnIndex": 42, # The column index of the coordinate.
                 "sheetId": 42, # The sheet this coordinate is on.
               },
-              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                   # from the anchor cell.
+              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                   # from the anchor cell.
               "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -22717,9 +22717,9 @@
                   "columnIndex": 42, # The column index of the coordinate.
                   "sheetId": 42, # The sheet this coordinate is on.
                 },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                     # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                     # from the anchor cell.
                 "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -22777,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -22834,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -22909,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -22987,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -23003,8 +23003,6 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -23144,6 +23142,8 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
@@ -23154,6 +23154,7 @@
         "updateConditionalFormatRule": { # The result of updating a conditional format rule. # A reply from updating a conditional format rule.
           "oldIndex": 42, # The old index of the rule. Not set if a rule was replaced
               # (because it is the same as new_index).
+          "newIndex": 42, # The index of the new rule.
           "oldRule": { # A rule describing a conditional format. # The old (deleted) rule. Not set if a rule was moved
               # (because it is the same as new_rule).
             "ranges": [ # The ranges that will be formatted if the condition is true.
@@ -23188,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -23243,7 +23244,7 @@
                   "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.
+                "verticalAlignment": "A String", # The vertical 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.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
@@ -23373,7 +23374,7 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                     # Absent values indicate that the field isn't specified.
                   "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -24491,7 +24492,6 @@
               },
             },
           },
-          "newIndex": 42, # The index of the new rule.
           "newRule": { # A rule describing a conditional format. # The new rule that replaced the old rule (if replacing),
               # or the rule that was moved (if moved)
             "ranges": [ # The ranges that will be formatted if the condition is true.
@@ -24526,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -24581,7 +24581,7 @@
                   "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.
+                "verticalAlignment": "A String", # The vertical 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.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
@@ -24711,7 +24711,7 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                     # Absent values indicate that the field isn't specified.
                   "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -25850,10 +25850,10 @@
                 # this field will be absent.)
                 # When writing it is an error to set any grid properties on non-grid sheets.
               "columnCount": 42, # The number of columns in the grid.
-              "rowCount": 42, # The number of rows in the grid.
+              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
               "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
               "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-              "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+              "rowCount": 42, # The number of rows in the grid.
             },
             "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
             "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
@@ -26032,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             },
             "name": "A String", # The name of the named range.
           },
@@ -26074,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -26088,30 +26088,6 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -26147,11 +26123,35 @@
                 # 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.
+              "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.
-              "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.
             },
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
           },
         },
         "deleteConditionalFormatRule": { # The result of deleting a conditional format rule. # A reply from deleting a conditional format rule.
@@ -26188,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -26243,7 +26243,7 @@
                   "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.
+                "verticalAlignment": "A String", # The vertical 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.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
@@ -26373,7 +26373,7 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                     # Absent values indicate that the field isn't specified.
                   "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -27524,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) 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
@@ -28653,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.
-              "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.
               "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.
+              "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.
@@ -28752,10 +28752,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.
-        "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.
         "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.
+        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
       },
       "name": "A String", # The name of the named range.
     },
@@ -28771,6 +28771,7 @@
         # * 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.
+    "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
         # cell's format is equal to this default format.
@@ -28791,7 +28792,7 @@
         "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.
+      "verticalAlignment": "A String", # The vertical 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.
           # for simplicity of conversion to/from color representations in various
           # languages over compactness; for example, the fields of this representation
@@ -28921,7 +28922,7 @@
         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
       },
-      "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+      "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
       "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
           # Absent values indicate that the field isn't specified.
         "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -29621,7 +29622,6 @@
       },
       "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
     },
-    "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
     "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.
@@ -29671,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -29726,7 +29726,7 @@
                 "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.
+              "verticalAlignment": "A String", # The vertical 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.
                   # for simplicity of conversion to/from color representations in various
                   # languages over compactness; for example, the fields of this representation
@@ -29856,7 +29856,7 @@
                 "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                 "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
               },
-              "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+              "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
               "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                   # Absent values indicate that the field isn't specified.
                 "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -31007,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) 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
@@ -32126,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.
-          "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.
           "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.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
         },
       ],
       "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -32163,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.
-          "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.
           "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.
+          "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.
@@ -32227,9 +32227,9 @@
                 "columnIndex": 42, # The column index of the coordinate.
                 "sheetId": 42, # The sheet this coordinate is on.
               },
-              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                   # from the anchor cell.
+              "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
               "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                   # from the anchor cell.
               "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -32287,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.
-                      "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.
                       "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.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -32344,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.
-                      "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.
                       "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.
+                      "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                     },
                   ],
                 },
@@ -32419,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.
-                          "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.
                           "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.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -32497,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.
-                          "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.
                           "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.
+                          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                         },
                       ],
                     },
@@ -32513,8 +32513,6 @@
                     # A chart may not have more than one axis per
                     # axis position.
                   "position": "A String", # The position of this axis.
-                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                      # from headers of the data.
                   "format": { # The format of a run of text in a cell. # The format of the title.
                       # Only valid if the axis is not associated with the domain.
                       # Absent values indicate that the field isn't specified.
@@ -32654,6 +32652,8 @@
                     "italic": True or False, # True if the text is italicized.
                     "underline": True or False, # True if the text is underlined.
                   },
+                  "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                      # from headers of the data.
                 },
               ],
             },
@@ -32702,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.
-            "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.
             "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.
+            "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.
@@ -32786,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
             },
           ],
           "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -32800,30 +32800,6 @@
               #
               # When writing, only one of range or named_range_id
               # may be set.
-          "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-              # This field is only visible to users with edit access to the protected
-              # range and the document.
-              # Editors are not supported with warning_only protection.
-            "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                # range.  Domain protection is only supported on documents within a domain.
-            "users": [ # The email addresses of users with edit access to the protected range.
-              "A String",
-            ],
-            "groups": [ # The email addresses of groups with edit access to the protected range.
-              "A String",
-            ],
-          },
-          "protectedRangeId": 42, # The ID of the protected range.
-              # This field is read-only.
-          "warningOnly": True or False, # True if this protected range will show a warning when editing.
-              # Warning-based protection means that every user can edit data in the
-              # protected range, except editing will prompt a warning asking the user
-              # to confirm the edit.
-              #
-              # When writing: if this field is true, then editors is ignored.
-              # Additionally, if this field is changed from true to false and the
-              # `editors` field is not set (nor included in the field mask), then
-              # the editors will be set to all the editors in the document.
           "range": { # A range on a sheet. # The range that is being protected.
               # The range may be fully unbounded, in which case this is considered
               # a protected sheet.
@@ -32859,11 +32835,35 @@
               # 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.
+            "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.
-            "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.
           },
+          "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+              # This field is only visible to users with edit access to the protected
+              # range and the document.
+              # Editors are not supported with warning_only protection.
+            "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                # range.  Domain protection is only supported on documents within a domain.
+            "users": [ # The email addresses of users with edit access to the protected range.
+              "A String",
+            ],
+            "groups": [ # The email addresses of groups with edit access to the protected range.
+              "A String",
+            ],
+          },
+          "protectedRangeId": 42, # The ID of the protected range.
+              # This field is read-only.
+          "warningOnly": True or False, # True if this protected range will show a warning when editing.
+              # Warning-based protection means that every user can edit data in the
+              # protected range, except editing will prompt a warning asking the user
+              # to confirm the edit.
+              #
+              # When writing: if this field is true, then editors is ignored.
+              # Additionally, if this field is changed from true to false and the
+              # `editors` field is not set (nor included in the field mask), then
+              # the editors will be set to all the editors in the document.
         },
       ],
       "data": [ # Data in the grid, if this is a grid sheet.
@@ -32875,7 +32875,15 @@
           # 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.
+              "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.
+            },
+          ],
           "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.
@@ -32886,15 +32894,7 @@
                   # This field is read-only.
             },
           ],
-          "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
-              # in start_row.
-            { # 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.
-            },
-          ],
+          "startRow": 42, # The first row this GridData refers to, zero-based.
           "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
@@ -33006,15 +33006,20 @@
                         # 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.
+                      "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.
-                      "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.
                     },
                     "values": [ # A list of values to include in the pivot table.
                       { # The definition of how a value in a pivot table should be calculated.
                         "formula": "A String", # A custom formula to calculate the value.  The formula must start
                             # with an `=` character.
+                        "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`.
                         "summarizeFunction": "A String", # A function to summarize the value.
                             # If formula is set, the only supported values are
                             # SUM and
@@ -33023,11 +33028,6 @@
                             # 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`.
                       },
                     ],
                     "criteria": { # An optional mapping of filters per source column offset.
@@ -33179,7 +33179,7 @@
                       "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.
+                    "verticalAlignment": "A String", # The vertical 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.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -33309,7 +33309,7 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
-                    "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                    "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                         # Absent values indicate that the field isn't specified.
                       "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -34028,7 +34028,7 @@
                       "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.
+                    "verticalAlignment": "A String", # The vertical 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.
                         # for simplicity of conversion to/from color representations in various
                         # languages over compactness; for example, the fields of this representation
@@ -34158,7 +34158,7 @@
                       "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                       "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                     },
-                    "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                    "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                     "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                         # Absent values indicate that the field isn't specified.
                       "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -35069,10 +35069,10 @@
             # this field will be absent.)
             # When writing it is an error to set any grid properties on non-grid sheets.
           "columnCount": 42, # The number of columns in the grid.
-          "rowCount": 42, # The number of rows in the grid.
+          "frozenRowCount": 42, # The number of rows that are frozen in the grid.
           "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
           "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-          "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+          "rowCount": 42, # The number of rows in the grid.
         },
         "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
         "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
@@ -35258,10 +35258,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.
-          "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.
           "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.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
         },
         "name": "A String", # The name of the named range.
       },
@@ -35277,6 +35277,7 @@
           # * 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.
+      "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
           # cell's format is equal to this default format.
@@ -35297,7 +35298,7 @@
           "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.
+        "verticalAlignment": "A String", # The vertical 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.
             # for simplicity of conversion to/from color representations in various
             # languages over compactness; for example, the fields of this representation
@@ -35427,7 +35428,7 @@
           "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+        "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
         "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
             # Absent values indicate that the field isn't specified.
           "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -36127,7 +36128,6 @@
         },
         "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       },
-      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "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.
@@ -36177,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -36232,7 +36232,7 @@
                   "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.
+                "verticalAlignment": "A String", # The vertical 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.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
@@ -36362,7 +36362,7 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                     # Absent values indicate that the field isn't specified.
                   "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -37513,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) 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
@@ -38632,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           },
         ],
         "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -38669,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.
-            "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.
             "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.
+            "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.
@@ -38733,9 +38733,9 @@
                   "columnIndex": 42, # The column index of the coordinate.
                   "sheetId": 42, # The sheet this coordinate is on.
                 },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                     # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                     # from the anchor cell.
                 "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -38793,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -38850,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -38925,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -39003,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -39019,8 +39019,6 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -39160,6 +39158,8 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
@@ -39208,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.
-              "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.
               "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.
+              "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.
@@ -39292,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -39306,30 +39306,6 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -39365,11 +39341,35 @@
                 # 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.
+              "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.
-              "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.
             },
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
           },
         ],
         "data": [ # Data in the grid, if this is a grid sheet.
@@ -39381,7 +39381,15 @@
             # 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.
+                "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.
+              },
+            ],
             "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.
@@ -39392,15 +39400,7 @@
                     # This field is read-only.
               },
             ],
-            "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
-                # in start_row.
-              { # 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.
-              },
-            ],
+            "startRow": 42, # The first row this GridData refers to, zero-based.
             "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
@@ -39512,15 +39512,20 @@
                           # 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.
+                        "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.
-                        "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.
                       },
                       "values": [ # A list of values to include in the pivot table.
                         { # The definition of how a value in a pivot table should be calculated.
                           "formula": "A String", # A custom formula to calculate the value.  The formula must start
                               # with an `=` character.
+                          "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`.
                           "summarizeFunction": "A String", # A function to summarize the value.
                               # If formula is set, the only supported values are
                               # SUM and
@@ -39529,11 +39534,6 @@
                               # 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`.
                         },
                       ],
                       "criteria": { # An optional mapping of filters per source column offset.
@@ -39685,7 +39685,7 @@
                         "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.
+                      "verticalAlignment": "A String", # The vertical 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.
                           # for simplicity of conversion to/from color representations in various
                           # languages over compactness; for example, the fields of this representation
@@ -39815,7 +39815,7 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
-                      "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                      "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                           # Absent values indicate that the field isn't specified.
                         "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -40534,7 +40534,7 @@
                         "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.
+                      "verticalAlignment": "A String", # The vertical 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.
                           # for simplicity of conversion to/from color representations in various
                           # languages over compactness; for example, the fields of this representation
@@ -40664,7 +40664,7 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
-                      "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                      "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                           # Absent values indicate that the field isn't specified.
                         "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -41575,10 +41575,10 @@
               # this field will be absent.)
               # When writing it is an error to set any grid properties on non-grid sheets.
             "columnCount": 42, # The number of columns in the grid.
-            "rowCount": 42, # The number of rows in the grid.
+            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
             "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
             "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+            "rowCount": 42, # The number of rows in the grid.
           },
           "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
           "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
@@ -41794,10 +41794,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.
-          "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.
           "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.
+          "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
         },
         "name": "A String", # The name of the named range.
       },
@@ -41813,6 +41813,7 @@
           # * 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.
+      "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
           # cell's format is equal to this default format.
@@ -41833,7 +41834,7 @@
           "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.
+        "verticalAlignment": "A String", # The vertical 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.
             # for simplicity of conversion to/from color representations in various
             # languages over compactness; for example, the fields of this representation
@@ -41963,7 +41964,7 @@
           "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
           "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+        "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
         "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
             # Absent values indicate that the field isn't specified.
           "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -42663,7 +42664,6 @@
         },
         "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
       },
-      "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
       "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.
@@ -42713,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -42768,7 +42768,7 @@
                   "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.
+                "verticalAlignment": "A String", # The vertical 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.
                     # for simplicity of conversion to/from color representations in various
                     # languages over compactness; for example, the fields of this representation
@@ -42898,7 +42898,7 @@
                   "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                   "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                 },
-                "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                 "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                     # Absent values indicate that the field isn't specified.
                   "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -44049,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.
-              "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.
               "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.
+              "endColumnIndex": 42, # The end column (exclusive) 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
@@ -45168,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.
-            "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.
             "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.
+            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
           },
         ],
         "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any.
@@ -45205,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.
-            "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.
             "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.
+            "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.
@@ -45269,9 +45269,9 @@
                   "columnIndex": 42, # The column index of the coordinate.
                   "sheetId": 42, # The sheet this coordinate is on.
                 },
-                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset
                     # from the anchor cell.
+                "widthPixels": 42, # The width of the object, in pixels. Defaults to 600.
                 "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset
                     # from the anchor cell.
                 "heightPixels": 42, # The height of the object, in pixels. Defaults to 371.
@@ -45329,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -45386,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.
-                        "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.
                         "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.
+                        "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                       },
                     ],
                   },
@@ -45461,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -45539,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.
-                            "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.
                             "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.
+                            "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
                           },
                         ],
                       },
@@ -45555,8 +45555,6 @@
                       # A chart may not have more than one axis per
                       # axis position.
                     "position": "A String", # The position of this axis.
-                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
-                        # from headers of the data.
                     "format": { # The format of a run of text in a cell. # The format of the title.
                         # Only valid if the axis is not associated with the domain.
                         # Absent values indicate that the field isn't specified.
@@ -45696,6 +45694,8 @@
                       "italic": True or False, # True if the text is italicized.
                       "underline": True or False, # True if the text is underlined.
                     },
+                    "title": "A String", # The title of this axis. If set, this overrides any title inferred
+                        # from headers of the data.
                   },
                 ],
               },
@@ -45744,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.
-              "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.
               "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.
+              "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.
@@ -45828,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.
-                "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.
                 "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.
+                "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
               },
             ],
             "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the
@@ -45842,30 +45842,6 @@
                 #
                 # When writing, only one of range or named_range_id
                 # may be set.
-            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
-                # This field is only visible to users with edit access to the protected
-                # range and the document.
-                # Editors are not supported with warning_only protection.
-              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
-                  # range.  Domain protection is only supported on documents within a domain.
-              "users": [ # The email addresses of users with edit access to the protected range.
-                "A String",
-              ],
-              "groups": [ # The email addresses of groups with edit access to the protected range.
-                "A String",
-              ],
-            },
-            "protectedRangeId": 42, # The ID of the protected range.
-                # This field is read-only.
-            "warningOnly": True or False, # True if this protected range will show a warning when editing.
-                # Warning-based protection means that every user can edit data in the
-                # protected range, except editing will prompt a warning asking the user
-                # to confirm the edit.
-                #
-                # When writing: if this field is true, then editors is ignored.
-                # Additionally, if this field is changed from true to false and the
-                # `editors` field is not set (nor included in the field mask), then
-                # the editors will be set to all the editors in the document.
             "range": { # A range on a sheet. # The range that is being protected.
                 # The range may be fully unbounded, in which case this is considered
                 # a protected sheet.
@@ -45901,11 +45877,35 @@
                 # 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.
+              "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.
-              "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.
             },
+            "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range.
+                # This field is only visible to users with edit access to the protected
+                # range and the document.
+                # Editors are not supported with warning_only protection.
+              "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected
+                  # range.  Domain protection is only supported on documents within a domain.
+              "users": [ # The email addresses of users with edit access to the protected range.
+                "A String",
+              ],
+              "groups": [ # The email addresses of groups with edit access to the protected range.
+                "A String",
+              ],
+            },
+            "protectedRangeId": 42, # The ID of the protected range.
+                # This field is read-only.
+            "warningOnly": True or False, # True if this protected range will show a warning when editing.
+                # Warning-based protection means that every user can edit data in the
+                # protected range, except editing will prompt a warning asking the user
+                # to confirm the edit.
+                #
+                # When writing: if this field is true, then editors is ignored.
+                # Additionally, if this field is changed from true to false and the
+                # `editors` field is not set (nor included in the field mask), then
+                # the editors will be set to all the editors in the document.
           },
         ],
         "data": [ # Data in the grid, if this is a grid sheet.
@@ -45917,7 +45917,15 @@
             # 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.
+                "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.
+              },
+            ],
             "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.
@@ -45928,15 +45936,7 @@
                     # This field is read-only.
               },
             ],
-            "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row
-                # in start_row.
-              { # 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.
-              },
-            ],
+            "startRow": 42, # The first row this GridData refers to, zero-based.
             "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
@@ -46048,15 +46048,20 @@
                           # 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.
+                        "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.
-                        "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.
                       },
                       "values": [ # A list of values to include in the pivot table.
                         { # The definition of how a value in a pivot table should be calculated.
                           "formula": "A String", # A custom formula to calculate the value.  The formula must start
                               # with an `=` character.
+                          "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`.
                           "summarizeFunction": "A String", # A function to summarize the value.
                               # If formula is set, the only supported values are
                               # SUM and
@@ -46065,11 +46070,6 @@
                               # 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`.
                         },
                       ],
                       "criteria": { # An optional mapping of filters per source column offset.
@@ -46221,7 +46221,7 @@
                         "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.
+                      "verticalAlignment": "A String", # The vertical 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.
                           # for simplicity of conversion to/from color representations in various
                           # languages over compactness; for example, the fields of this representation
@@ -46351,7 +46351,7 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
-                      "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                      "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                           # Absent values indicate that the field isn't specified.
                         "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -47070,7 +47070,7 @@
                         "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.
+                      "verticalAlignment": "A String", # The vertical 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.
                           # for simplicity of conversion to/from color representations in various
                           # languages over compactness; for example, the fields of this representation
@@ -47200,7 +47200,7 @@
                         "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
                         "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
                       },
-                      "verticalAlignment": "A String", # The vertical alignment of the value in the cell.
+                      "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell.
                       "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run).
                           # Absent values indicate that the field isn't specified.
                         "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text.
@@ -48111,10 +48111,10 @@
               # this field will be absent.)
               # When writing it is an error to set any grid properties on non-grid sheets.
             "columnCount": 42, # The number of columns in the grid.
-            "rowCount": 42, # The number of rows in the grid.
+            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
             "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
             "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-            "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+            "rowCount": 42, # The number of rows in the grid.
           },
           "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
           "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
diff --git a/docs/dyn/sheets_v4.spreadsheets.sheets.html b/docs/dyn/sheets_v4.spreadsheets.sheets.html
index 885d5cb..08ad4ba 100644
--- a/docs/dyn/sheets_v4.spreadsheets.sheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.sheets.html
@@ -120,10 +120,10 @@
         # this field will be absent.)
         # When writing it is an error to set any grid properties on non-grid sheets.
       "columnCount": 42, # The number of columns in the grid.
-      "rowCount": 42, # The number of rows in the grid.
+      "frozenRowCount": 42, # The number of rows that are frozen in the grid.
       "frozenColumnCount": 42, # The number of columns that are frozen in the grid.
       "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI.
-      "frozenRowCount": 42, # The number of rows that are frozen in the grid.
+      "rowCount": 42, # The number of rows in the grid.
     },
     "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet.
     "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI.
diff --git a/docs/dyn/sheets_v4.spreadsheets.values.html b/docs/dyn/sheets_v4.spreadsheets.values.html
index 613e7d1..7cb7002 100644
--- a/docs/dyn/sheets_v4.spreadsheets.values.html
+++ b/docs/dyn/sheets_v4.spreadsheets.values.html
@@ -75,7 +75,7 @@
 <h1><a href="sheets_v4.html">Google Sheets API</a> . <a href="sheets_v4.spreadsheets.html">spreadsheets</a> . <a href="sheets_v4.spreadsheets.values.html">values</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#append">append(spreadsheetId, range=None, body, valueInputOption=None, x__xgafv=None, responseValueRenderOption=None, insertDataOption=None, includeValuesInResponse=None, responseDateTimeRenderOption=None)</a></code></p>
+  <code><a href="#append">append(spreadsheetId, range, body, valueInputOption=None, x__xgafv=None, responseValueRenderOption=None, insertDataOption=None, includeValuesInResponse=None, responseDateTimeRenderOption=None)</a></code></p>
 <p class="firstline">Appends values to a spreadsheet. The input range is used to search for</p>
 <p class="toc_element">
   <code><a href="#batchClear">batchClear(spreadsheetId, body, x__xgafv=None)</a></code></p>
@@ -97,7 +97,7 @@
 <p class="firstline">Sets values in a range of a spreadsheet.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="append">append(spreadsheetId, range=None, body, valueInputOption=None, x__xgafv=None, responseValueRenderOption=None, insertDataOption=None, includeValuesInResponse=None, responseDateTimeRenderOption=None)</code>
+    <code class="details" id="append">append(spreadsheetId, range, body, valueInputOption=None, x__xgafv=None, responseValueRenderOption=None, insertDataOption=None, includeValuesInResponse=None, responseDateTimeRenderOption=None)</code>
   <pre>Appends values to a spreadsheet. The input range is used to search for
 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
@@ -453,9 +453,9 @@
         "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.
+    "totalUpdatedCells": 42, # The total number of cells updated.
     "totalUpdatedRows": 42, # The total number of rows where at least one cell in the row was updated.
     "spreadsheetId": "A String", # The spreadsheet the updates were applied to.
     "totalUpdatedSheets": 42, # The total number of sheets where at least one cell in the sheet was
diff --git a/docs/dyn/slides_v1.presentations.html b/docs/dyn/slides_v1.presentations.html
index 794e1be..9bd4d5e 100644
--- a/docs/dyn/slides_v1.presentations.html
+++ b/docs/dyn/slides_v1.presentations.html
@@ -156,7 +156,6 @@
               #
               # - `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.
               #
@@ -166,6 +165,7 @@
             "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.
@@ -322,10 +322,10 @@
             },
             "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.
+              "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.
             },
@@ -359,14 +359,14 @@
               "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.
-              "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.
               "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.
             },
             "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.
@@ -561,18 +561,6 @@
               # 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.
@@ -618,6 +606,18 @@
               },
             },
           },
+          "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.
         },
         "deleteParagraphBullets": { # Deletes bullets from all of the paragraphs that overlap with the given text # Deletes bullets from paragraphs.
             # index range.
@@ -640,64 +640,160 @@
             "columnIndex": 42, # The 0-based column index.
           },
         },
-        "updateLineProperties": { # Updates the properties of a Line. # Updates the properties of a Line.
+        "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.
-              "magnitude": 3.14, # The magnitude.
-              "unit": "A String", # The units for magnitude.
+              # 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.
+                },
+              },
             },
-            "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.
+            "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.
+            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                # read-only.
+                #
+                # This field is an extension of `font_family` meant to support explicit font
+                # weights without breaking backwards compatibility. As such, when reading the
+                # style of a range of text, the value of `weighted_font_family.font_family`
+                # will always be equal to that of `font_family`.
+              "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`.
+              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                  # only the numerical values described in the "Cascading Style Sheets Level
+                  # 2 Revision 1 (CSS 2.1) Specification",
+                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                  # non-numerical values in the specification are disallowed. Weights greater
+                  # than or equal to 700 are considered bold, and weights less than 700 are
+                  # not bold. The default value is `400` ("normal").
+            },
+            "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.
+            "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.
+              "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.
             },
-            "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.
-                  },
+            "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.
               },
             },
-            "startArrow": "A String", # The style of the arrow at the beginning of the line.
+            "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.
           },
-          "objectId": "A String", # The object ID of the line the update is applied to.
+          "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 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.
+          },
         },
         "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.
@@ -820,160 +916,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.
+          "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 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.
-            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                # read-only.
-                #
-                # This field is an extension of `font_family` meant to support explicit font
-                # weights without breaking backwards compatibility. As such, when reading the
-                # style of a range of text, the value of `weighted_font_family.font_family`
-                # will always be equal to that of `font_family`.
-              "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`.
-              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                  # only the numerical values described in the "Cascading Style Sheets Level
-                  # 2 Revision 1 (CSS 2.1) Specification",
-                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                  # non-numerical values in the specification are disallowed. Weights greater
-                  # than or equal to 700 are considered bold, and weights less than 700 are
-                  # not bold. The default value is `400` ("normal").
-            },
-            "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.
-            "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.
-            },
-            "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.
-                },
-              },
-            },
-            "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.
+            "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.
+              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                  # addressed by its position.
+            },
+            "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.
+              },
+            },
+            "startArrow": "A String", # The style of the arrow at the beginning of the line.
           },
-          "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 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 line the update is applied to.
         },
         "updateTableCellProperties": { # Update the properties of a TableCell. # Updates the properties of a TableCell.
           "fields": "A String", # The fields that should be updated.
@@ -1254,36 +1254,6 @@
               # If empty, a unique identifier will be generated.
         },
         "createSlide": { # Creates a new slide. # Creates a new slide.
-          "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.
-              },
-              "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.
-              "layoutPlaceholderObjectId": "A String", # The object ID of the placeholder on a layout that will be applied
-                  # to a slide.
-            },
-          ],
           "slideLayoutReference": { # Slide layout reference. This may reference either: # Layout reference of the slide to be inserted, based on the *current
               # master*, which is one of the following:
               #
@@ -1302,6 +1272,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
@@ -1437,10 +1437,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.
-              "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.
+              "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.
             },
@@ -1543,23 +1543,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.
-          "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.
-          "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.
+              #       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.
@@ -1659,30 +1666,23 @@
           },
           "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.
-              # to transform source coordinates (x,y) into destination coordinates (x', y')
-              # according to:
+        "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.
               #
-              #       x'  x  =   shear_y  scale_y  translate_y
-              #       1  [ 1 ]
+              # - `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.
               #
-              # 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.
+              # 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.
           },
-          "objectId": "A String", # The object ID of the page element to update.
+          "tableObjectId": "A String", # The table to insert columns into.
         },
       },
     ],
@@ -1760,6 +1760,2057 @@
 
 { # A Google Slides presentation.
     "presentationId": "A String", # The ID of the presentation.
+    "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:
+        # 
+        # - Placeholder shapes on a master contain the default text styles and shape
+        #   properties of all placeholder shapes on pages that use that master.
+        # - The master page properties define the common page properties inherited by
+        #   its layouts.
+        # - Any other shapes on the master slide will appear on all slides using that
+        #   master, regardless of their layout.
+      { # A page in a presentation.
+        "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.
+                  "pageObjectId": "A String", # If 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.
+                },
+                "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.
+                  "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.
+                  "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.
+                  "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.
+                },
+                "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.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                              # read-only.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family.font_family`
+                              # will always be equal to that of `font_family`.
+                            "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`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                # only the numerical values described in the "Cascading Style Sheets Level
+                                # 2 Revision 1 (CSS 2.1) Specification",
+                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                # non-numerical values in the specification are disallowed. Weights greater
+                                # than or equal to 700 are considered bold, and weights less than 700 are
+                                # not bold. The default value is `400` ("normal").
+                          },
+                          "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.
+                          "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.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "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.
+                              },
+                            },
+                          },
+                          "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.
+                        },
+                      },
+                    },
+                    "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.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                            # read-only.
+                            #
+                            # This field is an extension of `font_family` meant to support explicit font
+                            # weights without breaking backwards compatibility. As such, when reading the
+                            # style of a range of text, the value of `weighted_font_family.font_family`
+                            # will always be equal to that of `font_family`.
+                          "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`.
+                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                              # only the numerical values described in the "Cascading Style Sheets Level
+                              # 2 Revision 1 (CSS 2.1) Specification",
+                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                              # non-numerical values in the specification are disallowed. Weights greater
+                              # than or equal to 700 are considered bold, and weights less than 700 are
+                              # not bold. The default value is `400` ("normal").
+                        },
+                        "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.
+                        "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.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "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.
+                            },
+                          },
+                        },
+                        "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.
+                      },
+                      "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.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                              # read-only.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family.font_family`
+                              # will always be equal to that of `font_family`.
+                            "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`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                # only the numerical values described in the "Cascading Style Sheets Level
+                                # 2 Revision 1 (CSS 2.1) Specification",
+                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                # non-numerical values in the specification are disallowed. Weights greater
+                                # than or equal to 700 are considered bold, and weights less than 700 are
+                                # not bold. The default value is `400` ("normal").
+                          },
+                          "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.
+                          "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.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "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.
+                              },
+                            },
+                          },
+                          "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.
+                        },
+                        "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.
+                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                            # read-only.
+                            #
+                            # This field is an extension of `font_family` meant to support explicit font
+                            # weights without breaking backwards compatibility. As such, when reading the
+                            # style of a range of text, the value of `weighted_font_family.font_family`
+                            # will always be equal to that of `font_family`.
+                          "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`.
+                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                              # only the numerical values described in the "Cascading Style Sheets Level
+                              # 2 Revision 1 (CSS 2.1) Specification",
+                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                              # non-numerical values in the specification are disallowed. Weights greater
+                              # than or equal to 700 are considered bold, and weights less than 700 are
+                              # not bold. The default value is `400` ("normal").
+                        },
+                        "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.
+                        "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.
+                          "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                              # addressed by its position.
+                        },
+                        "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.
+                            },
+                          },
+                        },
+                        "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.
+                      },
+                    },
+                  },
+                ],
+              },
+              "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.
+                  "pageObjectId": "A String", # If 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.
+                },
+                "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.
+                    "pageObjectId": "A String", # If 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.
+                  },
+                  "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.
+                    "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.
+                    "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.
+                    "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.
+                  },
+                  "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.
+                  },
+                },
+              },
+            },
+            "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
+              ],
+            },
+            "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.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                      # read-only.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family.font_family`
+                                      # will always be equal to that of `font_family`.
+                                    "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`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                        # only the numerical values described in the "Cascading Style Sheets Level
+                                        # 2 Revision 1 (CSS 2.1) Specification",
+                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                        # non-numerical values in the specification are disallowed. Weights greater
+                                        # than or equal to 700 are considered bold, and weights less than 700 are
+                                        # not bold. The default value is `400` ("normal").
+                                  },
+                                  "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.
+                                  "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.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "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.
+                                      },
+                                    },
+                                  },
+                                  "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.
+                                },
+                              },
+                            },
+                            "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.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                    # read-only.
+                                    #
+                                    # This field is an extension of `font_family` meant to support explicit font
+                                    # weights without breaking backwards compatibility. As such, when reading the
+                                    # style of a range of text, the value of `weighted_font_family.font_family`
+                                    # will always be equal to that of `font_family`.
+                                  "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`.
+                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                      # only the numerical values described in the "Cascading Style Sheets Level
+                                      # 2 Revision 1 (CSS 2.1) Specification",
+                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                      # non-numerical values in the specification are disallowed. Weights greater
+                                      # than or equal to 700 are considered bold, and weights less than 700 are
+                                      # not bold. The default value is `400` ("normal").
+                                },
+                                "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.
+                                "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.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "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.
+                                    },
+                                  },
+                                },
+                                "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.
+                              },
+                              "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.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                      # read-only.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family.font_family`
+                                      # will always be equal to that of `font_family`.
+                                    "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`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                        # only the numerical values described in the "Cascading Style Sheets Level
+                                        # 2 Revision 1 (CSS 2.1) Specification",
+                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                        # non-numerical values in the specification are disallowed. Weights greater
+                                        # than or equal to 700 are considered bold, and weights less than 700 are
+                                        # not bold. The default value is `400` ("normal").
+                                  },
+                                  "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.
+                                  "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.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "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.
+                                      },
+                                    },
+                                  },
+                                  "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.
+                                },
+                                "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.
+                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                    # read-only.
+                                    #
+                                    # This field is an extension of `font_family` meant to support explicit font
+                                    # weights without breaking backwards compatibility. As such, when reading the
+                                    # style of a range of text, the value of `weighted_font_family.font_family`
+                                    # will always be equal to that of `font_family`.
+                                  "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`.
+                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                      # only the numerical values described in the "Cascading Style Sheets Level
+                                      # 2 Revision 1 (CSS 2.1) Specification",
+                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                      # non-numerical values in the specification are disallowed. Weights greater
+                                      # than or equal to 700 are considered bold, and weights less than 700 are
+                                      # not bold. The default value is `400` ("normal").
+                                },
+                                "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.
+                                "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.
+                                  "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                      # addressed by its position.
+                                },
+                                "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.
+                                    },
+                                  },
+                                },
+                                "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.
+                              },
+                            },
+                          },
+                        ],
+                      },
+                      "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.
+                  "pageObjectId": "A String", # If 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.
+                },
+                "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.
+                  },
+                },
+                "startArrow": "A String", # The style of the arrow at the beginning of the line.
+              },
+              "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.
+              },
+            },
+          },
+        ],
+        "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.
     "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
@@ -1872,10 +3923,10 @@
               },
               "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.
+                "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.
               },
@@ -1909,14 +3960,14 @@
                 "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.
-                "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.
                 "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.
               },
               "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.
@@ -2099,10 +4150,10 @@
                             #   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.
+                          "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.
                         },
@@ -2226,10 +4277,10 @@
                           #   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.
+                        "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.
                       },
@@ -2405,10 +4456,10 @@
                             #   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.
+                          "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.
                         },
@@ -2531,10 +4582,10 @@
                           #   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.
+                        "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.
                       },
@@ -2659,10 +4710,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.
-                "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.
+                "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.
               },
@@ -2730,11 +4781,12 @@
           "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.
-            "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
             "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.
@@ -2812,10 +4864,10 @@
                 },
                 "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.
+                  "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.
                 },
@@ -2849,14 +4901,14 @@
                   "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.
-                  "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.
                   "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.
                 },
                 "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.
@@ -2916,8 +4968,7 @@
                     # [-1.0, 1.0], where 0 means no effect. This property is read-only.
               },
             },
-            "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.
           },
           "video": { # A PageElement kind representing a # A video page element.
               # video.
@@ -3100,10 +5151,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -3227,10 +5278,10 @@
                                   #   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.
+                                "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.
                               },
@@ -3406,10 +5457,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -3532,10 +5583,10 @@
                                   #   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.
+                                "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.
                               },
@@ -3625,10 +5676,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.
-                "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.
+                "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.
               },
@@ -3788,2057 +5839,6 @@
         "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:
-        # 
-        # - Placeholder shapes on a master contain the default text styles and shape
-        #   properties of all placeholder shapes on pages that use that master.
-        # - The master page properties define the common page properties inherited by
-        #   its layouts.
-        # - Any other shapes on the master slide will appear on all slides using that
-        #   master, regardless of their layout.
-      { # A page in a presentation.
-        "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.
-                  "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.
-                  "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.
-                  "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                      # Rotation angle is applied after the offset.
-                },
-                "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.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "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`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "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.
-                          "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.
-                          },
-                          "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.
-                              },
-                            },
-                          },
-                          "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.
-                        },
-                      },
-                    },
-                    "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.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
-                            #
-                            # This field is an extension of `font_family` meant to support explicit font
-                            # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
-                          "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`.
-                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
-                        },
-                        "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.
-                        "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.
-                        },
-                        "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.
-                            },
-                          },
-                        },
-                        "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.
-                      },
-                      "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.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "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`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "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.
-                          "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.
-                          },
-                          "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.
-                              },
-                            },
-                          },
-                          "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.
-                        },
-                        "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.
-                        "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                            # read-only.
-                            #
-                            # This field is an extension of `font_family` meant to support explicit font
-                            # weights without breaking backwards compatibility. As such, when reading the
-                            # style of a range of text, the value of `weighted_font_family.font_family`
-                            # will always be equal to that of `font_family`.
-                          "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`.
-                          "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                              # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                              # only the numerical values described in the "Cascading Style Sheets Level
-                              # 2 Revision 1 (CSS 2.1) Specification",
-                              # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                              # non-numerical values in the specification are disallowed. Weights greater
-                              # than or equal to 700 are considered bold, and weights less than 700 are
-                              # not bold. The default value is `400` ("normal").
-                        },
-                        "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.
-                        "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.
-                        },
-                        "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.
-                            },
-                          },
-                        },
-                        "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.
-                      },
-                    },
-                  },
-                ],
-              },
-              "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.
-              "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.
-              "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.
-                    "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.
-                    "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.
-                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                        # Rotation angle is applied after the offset.
-                  },
-                  "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.
-                },
-              },
-              "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                  # embedded.
-            },
-            "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.
-                  },
-                },
-              },
-            },
-            "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
-              ],
-            },
-            "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.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "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`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "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.
-                                  "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.
-                                  },
-                                  "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.
-                                      },
-                                    },
-                                  },
-                                  "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.
-                                },
-                              },
-                            },
-                            "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.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
-                                    #
-                                    # This field is an extension of `font_family` meant to support explicit font
-                                    # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
-                                  "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`.
-                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
-                                },
-                                "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.
-                                "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.
-                                },
-                                "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.
-                                    },
-                                  },
-                                },
-                                "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.
-                              },
-                              "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.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "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`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "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.
-                                  "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.
-                                  },
-                                  "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.
-                                      },
-                                    },
-                                  },
-                                  "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.
-                                },
-                                "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.
-                                "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                    # read-only.
-                                    #
-                                    # This field is an extension of `font_family` meant to support explicit font
-                                    # weights without breaking backwards compatibility. As such, when reading the
-                                    # style of a range of text, the value of `weighted_font_family.font_family`
-                                    # will always be equal to that of `font_family`.
-                                  "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`.
-                                  "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                      # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                      # only the numerical values described in the "Cascading Style Sheets Level
-                                      # 2 Revision 1 (CSS 2.1) Specification",
-                                      # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                      # non-numerical values in the specification are disallowed. Weights greater
-                                      # than or equal to 700 are considered bold, and weights less than 700 are
-                                      # not bold. The default value is `400` ("normal").
-                                },
-                                "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.
-                                "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.
-                                },
-                                "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.
-                                    },
-                                  },
-                                },
-                                "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.
-                              },
-                            },
-                          },
-                        ],
-                      },
-                      "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.
-                },
-                "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.
-                  },
-                },
-                "startArrow": "A String", # The style of the arrow at the beginning of the line.
-              },
-              "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.
-              },
-            },
-          },
-        ],
-        "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.
-        },
-      },
-    ],
     "slides": [ # The slides in the presentation.
         # A slide inherits properties from a slide layout.
       { # A page in a presentation.
@@ -5943,10 +5943,10 @@
                 },
                 "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.
+                  "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.
                 },
@@ -5980,14 +5980,14 @@
                   "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.
-                  "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.
                   "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.
                 },
                 "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.
@@ -6170,10 +6170,10 @@
                               #   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.
+                            "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.
                           },
@@ -6297,10 +6297,10 @@
                             #   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.
+                          "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.
                         },
@@ -6476,10 +6476,10 @@
                               #   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.
+                            "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.
                           },
@@ -6602,10 +6602,10 @@
                             #   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.
+                          "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.
                         },
@@ -6730,10 +6730,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.
-                  "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.
+                  "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.
                 },
@@ -6801,11 +6801,12 @@
             "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.
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "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.
@@ -6883,10 +6884,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -6920,14 +6921,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -6987,8 +6988,7 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "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.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
@@ -7171,10 +7171,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -7298,10 +7298,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -7477,10 +7477,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -7603,10 +7603,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -7696,10 +7696,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.
-                  "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.
+                  "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.
                 },
@@ -7965,10 +7965,10 @@
                 },
                 "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.
+                  "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.
                 },
@@ -8002,14 +8002,14 @@
                   "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.
-                  "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.
                   "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.
                 },
                 "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.
@@ -8192,10 +8192,10 @@
                               #   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.
+                            "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.
                           },
@@ -8319,10 +8319,10 @@
                             #   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.
+                          "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.
                         },
@@ -8498,10 +8498,10 @@
                               #   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.
+                            "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.
                           },
@@ -8624,10 +8624,10 @@
                             #   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.
+                          "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.
                         },
@@ -8752,10 +8752,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.
-                  "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.
+                  "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.
                 },
@@ -8823,11 +8823,12 @@
             "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.
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "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.
@@ -8905,10 +8906,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -8942,14 +8943,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -9009,8 +9010,7 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "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.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
@@ -9193,10 +9193,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -9320,10 +9320,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -9499,10 +9499,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -9625,10 +9625,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -9718,10 +9718,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.
-                  "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.
+                  "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.
                 },
@@ -9894,6 +9894,2057 @@
 
     { # A Google Slides presentation.
       "presentationId": "A String", # The ID of the presentation.
+      "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:
+          #
+          # - Placeholder shapes on a master contain the default text styles and shape
+          #   properties of all placeholder shapes on pages that use that master.
+          # - The master page properties define the common page properties inherited by
+          #   its layouts.
+          # - Any other shapes on the master slide will appear on all slides using that
+          #   master, regardless of their layout.
+        { # A page in a presentation.
+          "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.
+                    "pageObjectId": "A String", # If 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.
+                  },
+                  "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.
+                    "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.
+                    "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.
+                    "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.
+                  },
+                  "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.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                # read-only.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family.font_family`
+                                # will always be equal to that of `font_family`.
+                              "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`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                  # only the numerical values described in the "Cascading Style Sheets Level
+                                  # 2 Revision 1 (CSS 2.1) Specification",
+                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                  # non-numerical values in the specification are disallowed. Weights greater
+                                  # than or equal to 700 are considered bold, and weights less than 700 are
+                                  # not bold. The default value is `400` ("normal").
+                            },
+                            "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.
+                            "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.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "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.
+                                },
+                              },
+                            },
+                            "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.
+                          },
+                        },
+                      },
+                      "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.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                              # read-only.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family.font_family`
+                              # will always be equal to that of `font_family`.
+                            "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`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                # only the numerical values described in the "Cascading Style Sheets Level
+                                # 2 Revision 1 (CSS 2.1) Specification",
+                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                # non-numerical values in the specification are disallowed. Weights greater
+                                # than or equal to 700 are considered bold, and weights less than 700 are
+                                # not bold. The default value is `400` ("normal").
+                          },
+                          "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.
+                          "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.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "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.
+                              },
+                            },
+                          },
+                          "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.
+                        },
+                        "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.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                # read-only.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family.font_family`
+                                # will always be equal to that of `font_family`.
+                              "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`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                  # only the numerical values described in the "Cascading Style Sheets Level
+                                  # 2 Revision 1 (CSS 2.1) Specification",
+                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                  # non-numerical values in the specification are disallowed. Weights greater
+                                  # than or equal to 700 are considered bold, and weights less than 700 are
+                                  # not bold. The default value is `400` ("normal").
+                            },
+                            "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.
+                            "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.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "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.
+                                },
+                              },
+                            },
+                            "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.
+                          },
+                          "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.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                              # read-only.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family.font_family`
+                              # will always be equal to that of `font_family`.
+                            "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`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                # only the numerical values described in the "Cascading Style Sheets Level
+                                # 2 Revision 1 (CSS 2.1) Specification",
+                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                # non-numerical values in the specification are disallowed. Weights greater
+                                # than or equal to 700 are considered bold, and weights less than 700 are
+                                # not bold. The default value is `400` ("normal").
+                          },
+                          "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.
+                          "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.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "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.
+                              },
+                            },
+                          },
+                          "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.
+                        },
+                      },
+                    },
+                  ],
+                },
+                "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.
+                    "pageObjectId": "A String", # If 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.
+                  },
+                  "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.
+                      "pageObjectId": "A String", # If 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.
+                    },
+                    "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.
+                      "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.
+                      "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.
+                      "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.
+                    },
+                    "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.
+                    },
+                  },
+                },
+              },
+              "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
+                ],
+              },
+              "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.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                        # read-only.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family.font_family`
+                                        # will always be equal to that of `font_family`.
+                                      "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`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                          # only the numerical values described in the "Cascading Style Sheets Level
+                                          # 2 Revision 1 (CSS 2.1) Specification",
+                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                          # non-numerical values in the specification are disallowed. Weights greater
+                                          # than or equal to 700 are considered bold, and weights less than 700 are
+                                          # not bold. The default value is `400` ("normal").
+                                    },
+                                    "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.
+                                    "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.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "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.
+                                        },
+                                      },
+                                    },
+                                    "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.
+                                  },
+                                },
+                              },
+                              "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.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                      # read-only.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family.font_family`
+                                      # will always be equal to that of `font_family`.
+                                    "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`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                        # only the numerical values described in the "Cascading Style Sheets Level
+                                        # 2 Revision 1 (CSS 2.1) Specification",
+                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                        # non-numerical values in the specification are disallowed. Weights greater
+                                        # than or equal to 700 are considered bold, and weights less than 700 are
+                                        # not bold. The default value is `400` ("normal").
+                                  },
+                                  "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.
+                                  "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.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "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.
+                                      },
+                                    },
+                                  },
+                                  "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.
+                                },
+                                "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.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                        # read-only.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family.font_family`
+                                        # will always be equal to that of `font_family`.
+                                      "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`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                          # only the numerical values described in the "Cascading Style Sheets Level
+                                          # 2 Revision 1 (CSS 2.1) Specification",
+                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                          # non-numerical values in the specification are disallowed. Weights greater
+                                          # than or equal to 700 are considered bold, and weights less than 700 are
+                                          # not bold. The default value is `400` ("normal").
+                                    },
+                                    "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.
+                                    "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.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "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.
+                                        },
+                                      },
+                                    },
+                                    "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.
+                                  },
+                                  "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.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                      # read-only.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family.font_family`
+                                      # will always be equal to that of `font_family`.
+                                    "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`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                        # only the numerical values described in the "Cascading Style Sheets Level
+                                        # 2 Revision 1 (CSS 2.1) Specification",
+                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                        # non-numerical values in the specification are disallowed. Weights greater
+                                        # than or equal to 700 are considered bold, and weights less than 700 are
+                                        # not bold. The default value is `400` ("normal").
+                                  },
+                                  "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.
+                                  "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.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "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.
+                                      },
+                                    },
+                                  },
+                                  "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.
+                                },
+                              },
+                            },
+                          ],
+                        },
+                        "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.
+                    "pageObjectId": "A String", # If 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.
+                  },
+                  "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.
+                    },
+                  },
+                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
+                },
+                "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.
+                },
+              },
+            },
+          ],
+          "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.
       "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
@@ -10006,10 +12057,10 @@
                 },
                 "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.
+                  "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.
                 },
@@ -10043,14 +12094,14 @@
                   "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.
-                  "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.
                   "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.
                 },
                 "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.
@@ -10233,10 +12284,10 @@
                               #   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.
+                            "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.
                           },
@@ -10360,10 +12411,10 @@
                             #   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.
+                          "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.
                         },
@@ -10539,10 +12590,10 @@
                               #   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.
+                            "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.
                           },
@@ -10665,10 +12716,10 @@
                             #   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.
+                          "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.
                         },
@@ -10793,10 +12844,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.
-                  "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.
+                  "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.
                 },
@@ -10864,11 +12915,12 @@
             "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.
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "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.
@@ -10946,10 +12998,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -10983,14 +13035,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -11050,8 +13102,7 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "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.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
@@ -11234,10 +13285,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -11361,10 +13412,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -11540,10 +13591,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -11666,10 +13717,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -11759,10 +13810,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.
-                  "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.
+                  "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.
                 },
@@ -11922,2057 +13973,6 @@
           "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:
-          #
-          # - Placeholder shapes on a master contain the default text styles and shape
-          #   properties of all placeholder shapes on pages that use that master.
-          # - The master page properties define the common page properties inherited by
-          #   its layouts.
-          # - Any other shapes on the master slide will appear on all slides using that
-          #   master, regardless of their layout.
-        { # A page in a presentation.
-          "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.
-                    "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.
-                    "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.
-                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                        # Rotation angle is applied after the offset.
-                  },
-                  "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.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "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`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "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.
-                            "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.
-                            },
-                            "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.
-                                },
-                              },
-                            },
-                            "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.
-                          },
-                        },
-                      },
-                      "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.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "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`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "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.
-                          "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.
-                          },
-                          "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.
-                              },
-                            },
-                          },
-                          "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.
-                        },
-                        "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.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "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`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "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.
-                            "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.
-                            },
-                            "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.
-                                },
-                              },
-                            },
-                            "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.
-                          },
-                          "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.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "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`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "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.
-                          "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.
-                          },
-                          "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.
-                              },
-                            },
-                          },
-                          "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.
-                        },
-                      },
-                    },
-                  ],
-                },
-                "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.
-                "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.
-                "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.
-                      "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.
-                      "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.
-                      "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                          # Rotation angle is applied after the offset.
-                    },
-                    "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.
-                  },
-                },
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
-              },
-              "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.
-                    },
-                  },
-                },
-              },
-              "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
-                ],
-              },
-              "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.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "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`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "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.
-                                    "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.
-                                    },
-                                    "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.
-                                        },
-                                      },
-                                    },
-                                    "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.
-                                  },
-                                },
-                              },
-                              "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.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "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`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "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.
-                                  "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.
-                                  },
-                                  "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.
-                                      },
-                                    },
-                                  },
-                                  "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.
-                                },
-                                "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.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "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`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "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.
-                                    "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.
-                                    },
-                                    "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.
-                                        },
-                                      },
-                                    },
-                                    "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.
-                                  },
-                                  "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.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "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`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "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.
-                                  "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.
-                                  },
-                                  "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.
-                                      },
-                                    },
-                                  },
-                                  "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.
-                                },
-                              },
-                            },
-                          ],
-                        },
-                        "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.
-                  },
-                  "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.
-                    },
-                  },
-                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
-                },
-                "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.
-                },
-              },
-            },
-          ],
-          "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.
-          },
-        },
-      ],
       "slides": [ # The slides in the presentation.
           # A slide inherits properties from a slide layout.
         { # A page in a presentation.
@@ -14077,10 +14077,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -14114,14 +14114,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -14304,10 +14304,10 @@
                                 #   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.
+                              "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.
                             },
@@ -14431,10 +14431,10 @@
                               #   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.
+                            "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.
                           },
@@ -14610,10 +14610,10 @@
                                 #   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.
+                              "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.
                             },
@@ -14736,10 +14736,10 @@
                               #   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.
+                            "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.
                           },
@@ -14864,10 +14864,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.
-                    "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.
+                    "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.
                   },
@@ -14935,11 +14935,12 @@
               "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.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "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.
@@ -15017,10 +15018,10 @@
                     },
                     "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.
+                      "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.
                     },
@@ -15054,14 +15055,14 @@
                       "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.
-                      "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.
                       "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.
                     },
                     "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.
@@ -15121,8 +15122,7 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "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.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
@@ -15305,10 +15305,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -15432,10 +15432,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -15611,10 +15611,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -15737,10 +15737,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -15830,10 +15830,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.
-                    "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.
+                    "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.
                   },
@@ -16099,10 +16099,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -16136,14 +16136,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -16326,10 +16326,10 @@
                                 #   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.
+                              "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.
                             },
@@ -16453,10 +16453,10 @@
                               #   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.
+                            "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.
                           },
@@ -16632,10 +16632,10 @@
                                 #   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.
+                              "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.
                             },
@@ -16758,10 +16758,10 @@
                               #   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.
+                            "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.
                           },
@@ -16886,10 +16886,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.
-                    "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.
+                    "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.
                   },
@@ -16957,11 +16957,12 @@
               "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.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "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.
@@ -17039,10 +17040,10 @@
                     },
                     "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.
+                      "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.
                     },
@@ -17076,14 +17077,14 @@
                       "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.
-                      "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.
                       "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.
                     },
                     "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.
@@ -17143,8 +17144,7 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "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.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
@@ -17327,10 +17327,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -17454,10 +17454,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -17633,10 +17633,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -17759,10 +17759,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -17852,10 +17852,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.
-                    "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.
+                    "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.
                   },
@@ -18035,6 +18035,2057 @@
 
     { # A Google Slides presentation.
       "presentationId": "A String", # The ID of the presentation.
+      "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:
+          #
+          # - Placeholder shapes on a master contain the default text styles and shape
+          #   properties of all placeholder shapes on pages that use that master.
+          # - The master page properties define the common page properties inherited by
+          #   its layouts.
+          # - Any other shapes on the master slide will appear on all slides using that
+          #   master, regardless of their layout.
+        { # A page in a presentation.
+          "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.
+                    "pageObjectId": "A String", # If 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.
+                  },
+                  "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.
+                    "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.
+                    "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.
+                    "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.
+                  },
+                  "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.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                # read-only.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family.font_family`
+                                # will always be equal to that of `font_family`.
+                              "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`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                  # only the numerical values described in the "Cascading Style Sheets Level
+                                  # 2 Revision 1 (CSS 2.1) Specification",
+                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                  # non-numerical values in the specification are disallowed. Weights greater
+                                  # than or equal to 700 are considered bold, and weights less than 700 are
+                                  # not bold. The default value is `400` ("normal").
+                            },
+                            "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.
+                            "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.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "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.
+                                },
+                              },
+                            },
+                            "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.
+                          },
+                        },
+                      },
+                      "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.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                              # read-only.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family.font_family`
+                              # will always be equal to that of `font_family`.
+                            "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`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                # only the numerical values described in the "Cascading Style Sheets Level
+                                # 2 Revision 1 (CSS 2.1) Specification",
+                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                # non-numerical values in the specification are disallowed. Weights greater
+                                # than or equal to 700 are considered bold, and weights less than 700 are
+                                # not bold. The default value is `400` ("normal").
+                          },
+                          "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.
+                          "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.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "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.
+                              },
+                            },
+                          },
+                          "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.
+                        },
+                        "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.
+                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                # read-only.
+                                #
+                                # This field is an extension of `font_family` meant to support explicit font
+                                # weights without breaking backwards compatibility. As such, when reading the
+                                # style of a range of text, the value of `weighted_font_family.font_family`
+                                # will always be equal to that of `font_family`.
+                              "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`.
+                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                  # only the numerical values described in the "Cascading Style Sheets Level
+                                  # 2 Revision 1 (CSS 2.1) Specification",
+                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                  # non-numerical values in the specification are disallowed. Weights greater
+                                  # than or equal to 700 are considered bold, and weights less than 700 are
+                                  # not bold. The default value is `400` ("normal").
+                            },
+                            "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.
+                            "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.
+                              "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                  # addressed by its position.
+                            },
+                            "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.
+                                },
+                              },
+                            },
+                            "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.
+                          },
+                          "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.
+                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                              # read-only.
+                              #
+                              # This field is an extension of `font_family` meant to support explicit font
+                              # weights without breaking backwards compatibility. As such, when reading the
+                              # style of a range of text, the value of `weighted_font_family.font_family`
+                              # will always be equal to that of `font_family`.
+                            "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`.
+                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                # only the numerical values described in the "Cascading Style Sheets Level
+                                # 2 Revision 1 (CSS 2.1) Specification",
+                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                # non-numerical values in the specification are disallowed. Weights greater
+                                # than or equal to 700 are considered bold, and weights less than 700 are
+                                # not bold. The default value is `400` ("normal").
+                          },
+                          "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.
+                          "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.
+                            "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                # addressed by its position.
+                          },
+                          "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.
+                              },
+                            },
+                          },
+                          "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.
+                        },
+                      },
+                    },
+                  ],
+                },
+                "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.
+                    "pageObjectId": "A String", # If 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.
+                  },
+                  "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.
+                      "pageObjectId": "A String", # If 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.
+                    },
+                    "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.
+                      "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.
+                      "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.
+                      "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.
+                    },
+                    "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.
+                    },
+                  },
+                },
+              },
+              "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
+                ],
+              },
+              "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.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                        # read-only.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family.font_family`
+                                        # will always be equal to that of `font_family`.
+                                      "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`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                          # only the numerical values described in the "Cascading Style Sheets Level
+                                          # 2 Revision 1 (CSS 2.1) Specification",
+                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                          # non-numerical values in the specification are disallowed. Weights greater
+                                          # than or equal to 700 are considered bold, and weights less than 700 are
+                                          # not bold. The default value is `400` ("normal").
+                                    },
+                                    "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.
+                                    "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.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "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.
+                                        },
+                                      },
+                                    },
+                                    "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.
+                                  },
+                                },
+                              },
+                              "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.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                      # read-only.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family.font_family`
+                                      # will always be equal to that of `font_family`.
+                                    "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`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                        # only the numerical values described in the "Cascading Style Sheets Level
+                                        # 2 Revision 1 (CSS 2.1) Specification",
+                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                        # non-numerical values in the specification are disallowed. Weights greater
+                                        # than or equal to 700 are considered bold, and weights less than 700 are
+                                        # not bold. The default value is `400` ("normal").
+                                  },
+                                  "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.
+                                  "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.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "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.
+                                      },
+                                    },
+                                  },
+                                  "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.
+                                },
+                                "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.
+                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                        # read-only.
+                                        #
+                                        # This field is an extension of `font_family` meant to support explicit font
+                                        # weights without breaking backwards compatibility. As such, when reading the
+                                        # style of a range of text, the value of `weighted_font_family.font_family`
+                                        # will always be equal to that of `font_family`.
+                                      "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`.
+                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                          # only the numerical values described in the "Cascading Style Sheets Level
+                                          # 2 Revision 1 (CSS 2.1) Specification",
+                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                          # non-numerical values in the specification are disallowed. Weights greater
+                                          # than or equal to 700 are considered bold, and weights less than 700 are
+                                          # not bold. The default value is `400` ("normal").
+                                    },
+                                    "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.
+                                    "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.
+                                      "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                          # addressed by its position.
+                                    },
+                                    "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.
+                                        },
+                                      },
+                                    },
+                                    "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.
+                                  },
+                                  "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.
+                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
+                                      # read-only.
+                                      #
+                                      # This field is an extension of `font_family` meant to support explicit font
+                                      # weights without breaking backwards compatibility. As such, when reading the
+                                      # style of a range of text, the value of `weighted_font_family.font_family`
+                                      # will always be equal to that of `font_family`.
+                                    "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`.
+                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
+                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
+                                        # only the numerical values described in the "Cascading Style Sheets Level
+                                        # 2 Revision 1 (CSS 2.1) Specification",
+                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
+                                        # non-numerical values in the specification are disallowed. Weights greater
+                                        # than or equal to 700 are considered bold, and weights less than 700 are
+                                        # not bold. The default value is `400` ("normal").
+                                  },
+                                  "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.
+                                  "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.
+                                    "relativeLink": "A String", # If set, indicates this is a link to a slide in this presentation,
+                                        # addressed by its position.
+                                  },
+                                  "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.
+                                      },
+                                    },
+                                  },
+                                  "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.
+                                },
+                              },
+                            },
+                          ],
+                        },
+                        "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.
+                    "pageObjectId": "A String", # If 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.
+                  },
+                  "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.
+                    },
+                  },
+                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
+                },
+                "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.
+                },
+              },
+            },
+          ],
+          "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.
       "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
@@ -18147,10 +20198,10 @@
                 },
                 "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.
+                  "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.
                 },
@@ -18184,14 +20235,14 @@
                   "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.
-                  "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.
                   "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.
                 },
                 "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.
@@ -18374,10 +20425,10 @@
                               #   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.
+                            "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.
                           },
@@ -18501,10 +20552,10 @@
                             #   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.
+                          "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.
                         },
@@ -18680,10 +20731,10 @@
                               #   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.
+                            "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.
                           },
@@ -18806,10 +20857,10 @@
                             #   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.
+                          "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.
                         },
@@ -18934,10 +20985,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.
-                  "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.
+                  "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.
                 },
@@ -19005,11 +21056,12 @@
             "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.
-              "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
               "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.
@@ -19087,10 +21139,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -19124,14 +21176,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -19191,8 +21243,7 @@
                       # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                 },
               },
-              "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.
             },
             "video": { # A PageElement kind representing a # A video page element.
                 # video.
@@ -19375,10 +21426,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -19502,10 +21553,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -19681,10 +21732,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -19807,10 +21858,10 @@
                                     #   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.
+                                  "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.
                                 },
@@ -19900,10 +21951,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.
-                  "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.
+                  "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.
                 },
@@ -20063,2057 +22114,6 @@
           "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:
-          #
-          # - Placeholder shapes on a master contain the default text styles and shape
-          #   properties of all placeholder shapes on pages that use that master.
-          # - The master page properties define the common page properties inherited by
-          #   its layouts.
-          # - Any other shapes on the master slide will appear on all slides using that
-          #   master, regardless of their layout.
-        { # A page in a presentation.
-          "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.
-                    "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.
-                    "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.
-                    "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                        # Rotation angle is applied after the offset.
-                  },
-                  "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.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "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`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "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.
-                            "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.
-                            },
-                            "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.
-                                },
-                              },
-                            },
-                            "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.
-                          },
-                        },
-                      },
-                      "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.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "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`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "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.
-                          "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.
-                          },
-                          "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.
-                              },
-                            },
-                          },
-                          "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.
-                        },
-                        "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.
-                            "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                # read-only.
-                                #
-                                # This field is an extension of `font_family` meant to support explicit font
-                                # weights without breaking backwards compatibility. As such, when reading the
-                                # style of a range of text, the value of `weighted_font_family.font_family`
-                                # will always be equal to that of `font_family`.
-                              "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`.
-                              "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                  # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                  # only the numerical values described in the "Cascading Style Sheets Level
-                                  # 2 Revision 1 (CSS 2.1) Specification",
-                                  # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                  # non-numerical values in the specification are disallowed. Weights greater
-                                  # than or equal to 700 are considered bold, and weights less than 700 are
-                                  # not bold. The default value is `400` ("normal").
-                            },
-                            "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.
-                            "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.
-                            },
-                            "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.
-                                },
-                              },
-                            },
-                            "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.
-                          },
-                          "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.
-                          "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                              # read-only.
-                              #
-                              # This field is an extension of `font_family` meant to support explicit font
-                              # weights without breaking backwards compatibility. As such, when reading the
-                              # style of a range of text, the value of `weighted_font_family.font_family`
-                              # will always be equal to that of `font_family`.
-                            "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`.
-                            "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                # only the numerical values described in the "Cascading Style Sheets Level
-                                # 2 Revision 1 (CSS 2.1) Specification",
-                                # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                # non-numerical values in the specification are disallowed. Weights greater
-                                # than or equal to 700 are considered bold, and weights less than 700 are
-                                # not bold. The default value is `400` ("normal").
-                          },
-                          "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.
-                          "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.
-                          },
-                          "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.
-                              },
-                            },
-                          },
-                          "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.
-                        },
-                      },
-                    },
-                  ],
-                },
-                "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.
-                "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.
-                "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.
-                      "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.
-                      "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.
-                      "angle": 3.14, # The rotation angle of the crop window around its center, in radians.
-                          # Rotation angle is applied after the offset.
-                    },
-                    "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.
-                  },
-                },
-                "chartId": 42, # The ID of the specific chart in the Google Sheets spreadsheet that is
-                    # embedded.
-              },
-              "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.
-                    },
-                  },
-                },
-              },
-              "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
-                ],
-              },
-              "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.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "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`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "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.
-                                    "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.
-                                    },
-                                    "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.
-                                        },
-                                      },
-                                    },
-                                    "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.
-                                  },
-                                },
-                              },
-                              "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.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "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`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "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.
-                                  "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.
-                                  },
-                                  "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.
-                                      },
-                                    },
-                                  },
-                                  "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.
-                                },
-                                "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.
-                                    "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                        # read-only.
-                                        #
-                                        # This field is an extension of `font_family` meant to support explicit font
-                                        # weights without breaking backwards compatibility. As such, when reading the
-                                        # style of a range of text, the value of `weighted_font_family.font_family`
-                                        # will always be equal to that of `font_family`.
-                                      "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`.
-                                      "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                          # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                          # only the numerical values described in the "Cascading Style Sheets Level
-                                          # 2 Revision 1 (CSS 2.1) Specification",
-                                          # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                          # non-numerical values in the specification are disallowed. Weights greater
-                                          # than or equal to 700 are considered bold, and weights less than 700 are
-                                          # not bold. The default value is `400` ("normal").
-                                    },
-                                    "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.
-                                    "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.
-                                    },
-                                    "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.
-                                        },
-                                      },
-                                    },
-                                    "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.
-                                  },
-                                  "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.
-                                  "weightedFontFamily": { # Represents a font family and weight used to style a TextRun. # The font family and rendered weight of the text. This property is
-                                      # read-only.
-                                      #
-                                      # This field is an extension of `font_family` meant to support explicit font
-                                      # weights without breaking backwards compatibility. As such, when reading the
-                                      # style of a range of text, the value of `weighted_font_family.font_family`
-                                      # will always be equal to that of `font_family`.
-                                    "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`.
-                                    "weight": 42, # The rendered weight of the text. This field can have any value that is a
-                                        # multiple of 100 between 100 and 900, inclusive. This range corresponds to
-                                        # only the numerical values described in the "Cascading Style Sheets Level
-                                        # 2 Revision 1 (CSS 2.1) Specification",
-                                        # [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness). The
-                                        # non-numerical values in the specification are disallowed. Weights greater
-                                        # than or equal to 700 are considered bold, and weights less than 700 are
-                                        # not bold. The default value is `400` ("normal").
-                                  },
-                                  "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.
-                                  "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.
-                                  },
-                                  "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.
-                                      },
-                                    },
-                                  },
-                                  "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.
-                                },
-                              },
-                            },
-                          ],
-                        },
-                        "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.
-                  },
-                  "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.
-                    },
-                  },
-                  "startArrow": "A String", # The style of the arrow at the beginning of the line.
-                },
-                "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.
-                },
-              },
-            },
-          ],
-          "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.
-          },
-        },
-      ],
       "slides": [ # The slides in the presentation.
           # A slide inherits properties from a slide layout.
         { # A page in a presentation.
@@ -22218,10 +22218,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -22255,14 +22255,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -22445,10 +22445,10 @@
                                 #   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.
+                              "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.
                             },
@@ -22572,10 +22572,10 @@
                               #   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.
+                            "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.
                           },
@@ -22751,10 +22751,10 @@
                                 #   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.
+                              "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.
                             },
@@ -22877,10 +22877,10 @@
                               #   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.
+                            "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.
                           },
@@ -23005,10 +23005,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.
-                    "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.
+                    "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.
                   },
@@ -23076,11 +23076,12 @@
               "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.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "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.
@@ -23158,10 +23159,10 @@
                     },
                     "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.
+                      "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.
                     },
@@ -23195,14 +23196,14 @@
                       "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.
-                      "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.
                       "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.
                     },
                     "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.
@@ -23262,8 +23263,7 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "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.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
@@ -23446,10 +23446,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -23573,10 +23573,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -23752,10 +23752,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -23878,10 +23878,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -23971,10 +23971,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.
-                    "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.
+                    "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.
                   },
@@ -24240,10 +24240,10 @@
                   },
                   "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.
+                    "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.
                   },
@@ -24277,14 +24277,14 @@
                     "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.
-                    "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.
                     "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.
                   },
                   "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.
@@ -24467,10 +24467,10 @@
                                 #   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.
+                              "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.
                             },
@@ -24594,10 +24594,10 @@
                               #   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.
+                            "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.
                           },
@@ -24773,10 +24773,10 @@
                                 #   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.
+                              "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.
                             },
@@ -24899,10 +24899,10 @@
                               #   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.
+                            "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.
                           },
@@ -25027,10 +25027,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.
-                    "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.
+                    "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.
                   },
@@ -25098,11 +25098,12 @@
               "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.
-                "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
                 "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.
@@ -25180,10 +25181,10 @@
                     },
                     "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.
+                      "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.
                     },
@@ -25217,14 +25218,14 @@
                       "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.
-                      "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.
                       "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.
                     },
                     "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.
@@ -25284,8 +25285,7 @@
                         # [-1.0, 1.0], where 0 means no effect. This property is read-only.
                   },
                 },
-                "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.
               },
               "video": { # A PageElement kind representing a # A video page element.
                   # video.
@@ -25468,10 +25468,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -25595,10 +25595,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -25774,10 +25774,10 @@
                                         #   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.
+                                      "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.
                                     },
@@ -25900,10 +25900,10 @@
                                       #   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.
+                                    "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.
                                   },
@@ -25993,10 +25993,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.
-                    "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.
+                    "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.
                   },
diff --git a/docs/dyn/slides_v1.presentations.pages.html b/docs/dyn/slides_v1.presentations.pages.html
index 868a42e..37ffa59 100644
--- a/docs/dyn/slides_v1.presentations.pages.html
+++ b/docs/dyn/slides_v1.presentations.pages.html
@@ -198,10 +198,10 @@
             },
             "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.
+              "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.
             },
@@ -235,14 +235,14 @@
               "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.
-              "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.
               "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.
             },
             "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.
@@ -425,10 +425,10 @@
                           #   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.
+                        "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.
                       },
@@ -552,10 +552,10 @@
                         #   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.
+                      "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.
                     },
@@ -731,10 +731,10 @@
                           #   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.
+                        "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.
                       },
@@ -857,10 +857,10 @@
                         #   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.
+                      "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.
                     },
@@ -985,10 +985,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.
-              "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.
+              "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.
             },
@@ -1056,11 +1056,12 @@
         "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.
-          "spreadsheetId": "A String", # The ID of the Google Sheets spreadsheet that contains the source chart.
           "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.
@@ -1138,10 +1139,10 @@
               },
               "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.
+                "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.
               },
@@ -1175,14 +1176,14 @@
                 "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.
-                "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.
                 "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.
               },
               "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.
@@ -1242,8 +1243,7 @@
                   # [-1.0, 1.0], where 0 means no effect. This property is read-only.
             },
           },
-          "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.
         },
         "video": { # A PageElement kind representing a # A video page element.
             # video.
@@ -1426,10 +1426,10 @@
                                   #   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.
+                                "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.
                               },
@@ -1553,10 +1553,10 @@
                                 #   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.
+                              "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.
                             },
@@ -1732,10 +1732,10 @@
                                   #   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.
+                                "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.
                               },
@@ -1858,10 +1858,10 @@
                                 #   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.
+                              "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.
                             },
@@ -1951,10 +1951,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.
-              "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.
+              "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.
             },
diff --git a/docs/dyn/sourcerepo_v1.projects.repos.html b/docs/dyn/sourcerepo_v1.projects.repos.html
index 12a375a..38bcb97 100644
--- a/docs/dyn/sourcerepo_v1.projects.repos.html
+++ b/docs/dyn/sourcerepo_v1.projects.repos.html
@@ -75,29 +75,29 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#delete">delete(name, 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>
+  <code><a href="#get">get(name, 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>
+  <code><a href="#getIamPolicy">getIamPolicy(resource, 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>
+  <code><a href="#list">list(name, 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>
+  <code><a href="#setIamPolicy">setIamPolicy(resource, 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>
+  <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.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="create">create(parent=None, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, 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
@@ -155,7 +155,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes a repo.
 
 Args:
@@ -182,7 +182,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Returns information about a repo.
 
 Args:
@@ -216,7 +216,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getIamPolicy">getIamPolicy(resource=None, x__xgafv=None)</code>
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, 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.
@@ -453,7 +453,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(name=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(name, x__xgafv=None)</code>
   <pre>Returns all repos belonging to a project.
 
 Args:
@@ -491,7 +491,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="setIamPolicy">setIamPolicy(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any
 existing policy.
 
@@ -959,7 +959,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="testIamPermissions">testIamPermissions(resource=None, body, x__xgafv=None)</code>
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, 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.
diff --git a/docs/dyn/spanner_v1.projects.instanceConfigs.html b/docs/dyn/spanner_v1.projects.instanceConfigs.html
index 8f650d9..9d8410f 100644
--- a/docs/dyn/spanner_v1.projects.instanceConfigs.html
+++ b/docs/dyn/spanner_v1.projects.instanceConfigs.html
@@ -75,17 +75,17 @@
 <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>
+  <code><a href="#get">get(name, 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>
+  <code><a href="#list">list(parent, 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>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets information about a particular instance configuration.
 
 Args:
@@ -109,7 +109,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, pageToken=None, x__xgafv=None, pageSize=None)</code>
   <pre>Lists the supported instance configurations for a given project.
 
 Args:
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.html b/docs/dyn/spanner_v1.projects.instances.databases.html
index ee90725..026ee47 100644
--- a/docs/dyn/spanner_v1.projects.instances.databases.html
+++ b/docs/dyn/spanner_v1.projects.instances.databases.html
@@ -85,13 +85,13 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#get">get(name, 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>
@@ -100,7 +100,7 @@
   <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, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=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>
@@ -116,7 +116,7 @@
 <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>
+    <code class="details" id="create">create(parent, 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
@@ -269,7 +269,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets the state of a Cloud Spanner database.
 
 Args:
@@ -543,7 +543,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(parent=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists Cloud Spanner databases.
 
 Args:
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
index 2674a45..5f33171 100644
--- a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
+++ b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
@@ -353,15 +353,8 @@
             # 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.
+        "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+            # the Transaction message that describes the transaction.
         "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
@@ -386,8 +379,15 @@
             #
             # 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.
+        "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.
         "strong": True or False, # Read at a timestamp where all previously committed transactions
             # are visible.
       },
@@ -465,84 +465,8 @@
             "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.
@@ -668,6 +592,82 @@
                 # `KeySet` matches all keys in the table or index. Note that any keys
                 # specified in `keys` or `ranges` are only yielded once.
           },
+          "table": "A String", # Required. The table whose rows will be deleted.
+        },
+        "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",
+          ],
+        },
+        "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",
+          ],
         },
       },
     ],
@@ -914,15 +914,8 @@
             # 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.
+        "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+            # the Transaction message that describes the transaction.
         "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
@@ -947,8 +940,15 @@
             #
             # 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.
+        "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.
         "strong": True or False, # Read at a timestamp where all previously committed transactions
             # are visible.
       },
@@ -1295,15 +1295,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -1328,8 +1321,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -1571,15 +1571,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -1604,8 +1597,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -1635,9 +1635,6 @@
             # 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,
@@ -1654,6 +1651,9 @@
         # corresponding parameter values.
       "a_key": "", # Properties of the object.
     },
+    "sql": "A String", # Required. The SQL query string.
+    "queryMode": "A String", # Used to control the amount of debugging information returned in
+        # ResultSetStats.
   }
 
   x__xgafv: string, V1 error format.
@@ -1708,11 +1708,11 @@
                     # 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.
+                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
@@ -2061,15 +2061,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -2094,8 +2087,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -2337,15 +2337,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -2370,8 +2363,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -2401,9 +2401,6 @@
             # 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,
@@ -2420,6 +2417,9 @@
         # corresponding parameter values.
       "a_key": "", # Properties of the object.
     },
+    "sql": "A String", # Required. The SQL query string.
+    "queryMode": "A String", # Used to control the amount of debugging information returned in
+        # ResultSetStats.
   }
 
   x__xgafv: string, V1 error format.
@@ -2549,11 +2549,11 @@
                     # 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.
+                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
@@ -2935,15 +2935,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -2968,8 +2961,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -3211,15 +3211,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -3244,8 +3237,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -3453,11 +3453,11 @@
                     # 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.
+                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
@@ -3849,15 +3849,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -3882,8 +3875,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -4125,15 +4125,8 @@
               # 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.
+          "returnReadTimestamp": True or False, # If true, the Cloud Spanner-selected read timestamp is included in
+              # the Transaction message that describes the transaction.
           "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
@@ -4158,8 +4151,15 @@
               #
               # 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.
+          "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.
           "strong": True or False, # Read at a timestamp where all previously committed transactions
               # are visible.
         },
@@ -4442,11 +4442,11 @@
                     # 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.
+                "childIndex": 42, # The node to which the link points.
               },
             ],
             "shortRepresentation": { # Condensed representation of a node and its subtree. Only present for # Condensed representation for SCALAR nodes.
diff --git a/docs/dyn/spanner_v1.projects.instances.html b/docs/dyn/spanner_v1.projects.instances.html
index 70fcf06..8bccf28 100644
--- a/docs/dyn/spanner_v1.projects.instances.html
+++ b/docs/dyn/spanner_v1.projects.instances.html
@@ -85,25 +85,25 @@
 <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>
+  <code><a href="#create">create(parent, 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>
+  <code><a href="#delete">delete(name, 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>
+  <code><a href="#get">get(name, 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>
+  <code><a href="#list">list(parent, 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>
+  <code><a href="#patch">patch(name, 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>
@@ -113,7 +113,7 @@
 <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>
+    <code class="details" id="create">create(parent, 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
@@ -302,7 +302,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name=None, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
   <pre>Deletes an instance.
 
 Immediately upon completion of the request:
@@ -339,7 +339,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(name=None, x__xgafv=None)</code>
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
   <pre>Gets information about a particular instance.
 
 Args:
@@ -622,7 +622,7 @@
 </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, pageSize=None, filter=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists all instances in the given project.
 
 Args:
@@ -725,7 +725,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(name=None, body, x__xgafv=None)</code>
+    <code class="details" id="patch">patch(name, 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
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.html
index 016f52a..82a4d79 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.html
@@ -80,13 +80,13 @@
 <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>
+  <code><a href="#create">create(projectId, historyId, 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>
+  <code><a href="#get">get(projectId, historyId, executionId)</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>
+  <code><a href="#list">list(projectId, historyId, 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>
@@ -96,7 +96,7 @@
 <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>
+    <code class="details" id="create">create(projectId, historyId, body, requestId=None)</code>
   <pre>Creates an Execution.
 
 The returned Execution will have the id set.
@@ -448,7 +448,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, historyId=None, executionId=None)</code>
+    <code class="details" id="get">get(projectId, historyId, executionId)</code>
   <pre>Gets an Execution.
 
 May return any of the following canonical error codes:
@@ -633,7 +633,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId=None, historyId=None, pageToken=None, pageSize=None)</code>
+    <code class="details" id="list">list(projectId, historyId, 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.
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html
index f030b3f..a0af24a 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.html
@@ -90,29 +90,29 @@
 <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>
+  <code><a href="#create">create(projectId, historyId, executionId, 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>
+  <code><a href="#get">get(projectId, historyId, executionId, stepId)</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>
+  <code><a href="#list">list(projectId, historyId, executionId, 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>
+  <code><a href="#patch">patch(projectId, historyId, executionId, stepId, 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>
+  <code><a href="#publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, 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>
+    <code class="details" id="create">create(projectId, historyId, executionId, body, requestId=None)</code>
   <pre>Creates a Step.
 
 The returned Step will have the id set.
@@ -1319,7 +1319,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, historyId=None, executionId=None, stepId=None)</code>
+    <code class="details" id="get">get(projectId, historyId, executionId, stepId)</code>
   <pre>Gets a Step.
 
 May return any of the following canonical error codes:
@@ -1970,7 +1970,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId=None, historyId=None, executionId=None, pageToken=None, pageSize=None)</code>
+    <code class="details" id="list">list(projectId, historyId, executionId, 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.
@@ -2612,7 +2612,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(projectId=None, historyId=None, executionId=None, stepId=None, body, requestId=None)</code>
+    <code class="details" id="patch">patch(projectId, historyId, executionId, stepId, body, requestId=None)</code>
   <pre>Updates an existing Step with the supplied partial entity.
 
 May return any of the following canonical error codes:
@@ -3820,7 +3820,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="publishXunitXmlFiles">publishXunitXmlFiles(projectId=None, historyId=None, executionId=None, stepId=None, body)</code>
+    <code class="details" id="publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, body)</code>
   <pre>Publish xml files to an existing Step.
 
 May return any of the following canonical error codes:
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 a233859..57001b0 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.executions.steps.thumbnails.html
@@ -75,14 +75,14 @@
 <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.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>
+  <code><a href="#list">list(projectId, historyId, executionId, stepId, 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>
+    <code class="details" id="list">list(projectId, historyId, executionId, stepId, 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
diff --git a/docs/dyn/toolresults_v1beta3.projects.histories.html b/docs/dyn/toolresults_v1beta3.projects.histories.html
index 6e2a48c..6e25fbd 100644
--- a/docs/dyn/toolresults_v1beta3.projects.histories.html
+++ b/docs/dyn/toolresults_v1beta3.projects.histories.html
@@ -80,20 +80,20 @@
 <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>
+  <code><a href="#create">create(projectId, 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>
+  <code><a href="#get">get(projectId, historyId)</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>
+  <code><a href="#list">list(projectId, 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>
+    <code class="details" id="create">create(projectId, body, requestId=None)</code>
   <pre>Creates a History.
 
 The returned History will have the id set.
@@ -150,7 +150,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, historyId=None)</code>
+    <code class="details" id="get">get(projectId, historyId)</code>
   <pre>Gets a History.
 
 May return any of the following canonical error codes:
@@ -186,7 +186,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId=None, pageToken=None, pageSize=None, filterByName=None)</code>
+    <code class="details" id="list">list(projectId, 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.
diff --git a/docs/dyn/toolresults_v1beta3.projects.html b/docs/dyn/toolresults_v1beta3.projects.html
index a563198..72d4fef 100644
--- a/docs/dyn/toolresults_v1beta3.projects.html
+++ b/docs/dyn/toolresults_v1beta3.projects.html
@@ -80,14 +80,14 @@
 <p class="firstline">Returns the histories Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#getSettings">getSettings(projectId=None)</a></code></p>
+  <code><a href="#getSettings">getSettings(projectId)</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>
+  <code><a href="#initializeSettings">initializeSettings(projectId)</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>
+    <code class="details" id="getSettings">getSettings(projectId)</code>
   <pre>Gets the Tool Results settings for a project.
 
 May return any of the following canonical error codes:
@@ -117,7 +117,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="initializeSettings">initializeSettings(projectId=None)</code>
+    <code class="details" id="initializeSettings">initializeSettings(projectId)</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.
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.html
index 0459c0a..2bfbbde 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.html
@@ -80,13 +80,13 @@
 <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>
+  <code><a href="#create">create(projectId, historyId, 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>
+  <code><a href="#get">get(projectId, historyId, executionId)</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>
+  <code><a href="#list">list(projectId, historyId, 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>
@@ -96,7 +96,7 @@
 <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>
+    <code class="details" id="create">create(projectId, historyId, body, requestId=None)</code>
   <pre>Creates an Execution.
 
 The returned Execution will have the id set.
@@ -448,7 +448,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, historyId=None, executionId=None)</code>
+    <code class="details" id="get">get(projectId, historyId, executionId)</code>
   <pre>Gets an Execution.
 
 May return any of the following canonical error codes:
@@ -633,7 +633,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId=None, historyId=None, pageToken=None, pageSize=None)</code>
+    <code class="details" id="list">list(projectId, historyId, 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.
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.html
index b89a929..87c55b1 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.html
@@ -90,29 +90,29 @@
 <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>
+  <code><a href="#create">create(projectId, historyId, executionId, 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>
+  <code><a href="#get">get(projectId, historyId, executionId, stepId)</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>
+  <code><a href="#list">list(projectId, historyId, executionId, 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>
+  <code><a href="#patch">patch(projectId, historyId, executionId, stepId, 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>
+  <code><a href="#publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, 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>
+    <code class="details" id="create">create(projectId, historyId, executionId, body, requestId=None)</code>
   <pre>Creates a Step.
 
 The returned Step will have the id set.
@@ -1319,7 +1319,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, historyId=None, executionId=None, stepId=None)</code>
+    <code class="details" id="get">get(projectId, historyId, executionId, stepId)</code>
   <pre>Gets a Step.
 
 May return any of the following canonical error codes:
@@ -1970,7 +1970,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId=None, historyId=None, executionId=None, pageToken=None, pageSize=None)</code>
+    <code class="details" id="list">list(projectId, historyId, executionId, 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.
@@ -2612,7 +2612,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(projectId=None, historyId=None, executionId=None, stepId=None, body, requestId=None)</code>
+    <code class="details" id="patch">patch(projectId, historyId, executionId, stepId, body, requestId=None)</code>
   <pre>Updates an existing Step with the supplied partial entity.
 
 May return any of the following canonical error codes:
@@ -3820,7 +3820,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="publishXunitXmlFiles">publishXunitXmlFiles(projectId=None, historyId=None, executionId=None, stepId=None, body)</code>
+    <code class="details" id="publishXunitXmlFiles">publishXunitXmlFiles(projectId, historyId, executionId, stepId, body)</code>
   <pre>Publish xml files to an existing Step.
 
 May return any of the following canonical error codes:
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
index 44b070f..61d1637 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.executions.steps.thumbnails.html
@@ -75,14 +75,14 @@
 <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>
+  <code><a href="#list">list(projectId, historyId, executionId, stepId, 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>
+    <code class="details" id="list">list(projectId, historyId, executionId, stepId, 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
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.html b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.html
index 1f032a5..4fa8bc3 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.histories.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.histories.html
@@ -80,20 +80,20 @@
 <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>
+  <code><a href="#create">create(projectId, 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>
+  <code><a href="#get">get(projectId, historyId)</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>
+  <code><a href="#list">list(projectId, 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>
+    <code class="details" id="create">create(projectId, body, requestId=None)</code>
   <pre>Creates a History.
 
 The returned History will have the id set.
@@ -150,7 +150,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(projectId=None, historyId=None)</code>
+    <code class="details" id="get">get(projectId, historyId)</code>
   <pre>Gets a History.
 
 May return any of the following canonical error codes:
@@ -186,7 +186,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(projectId=None, pageToken=None, pageSize=None, filterByName=None)</code>
+    <code class="details" id="list">list(projectId, 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.
diff --git a/docs/dyn/toolresults_v1beta3firstparty.projects.html b/docs/dyn/toolresults_v1beta3firstparty.projects.html
index aa5d14a..7a076f2 100644
--- a/docs/dyn/toolresults_v1beta3firstparty.projects.html
+++ b/docs/dyn/toolresults_v1beta3firstparty.projects.html
@@ -80,14 +80,14 @@
 <p class="firstline">Returns the histories Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#getSettings">getSettings(projectId=None)</a></code></p>
+  <code><a href="#getSettings">getSettings(projectId)</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>
+  <code><a href="#initializeSettings">initializeSettings(projectId)</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>
+    <code class="details" id="getSettings">getSettings(projectId)</code>
   <pre>Gets the Tool Results settings for a project.
 
 May return any of the following canonical error codes:
@@ -117,7 +117,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="initializeSettings">initializeSettings(projectId=None)</code>
+    <code class="details" id="initializeSettings">initializeSettings(projectId)</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.
diff --git a/docs/dyn/tracing_v1.projects.traces.html b/docs/dyn/tracing_v1.projects.traces.html
index c73bd7e..f4d3c0e 100644
--- a/docs/dyn/tracing_v1.projects.traces.html
+++ b/docs/dyn/tracing_v1.projects.traces.html
@@ -84,7 +84,7 @@
   <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=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <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>
@@ -196,7 +196,9 @@
                   "functionName": "A String", # The fully-qualified name that uniquely identifies this function or
                       # method.
                   "fileName": "A String", # The filename of the file containing this frame.
-                  "sourceVersion": "A String", # The version of the deployed source code.
+                  "originalFunctionName": "A String", # Used when the function name is
+                      # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
+                      # fully-qualified.
                   "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
@@ -204,9 +206,7 @@
                         # such as libc.so, sharedlib.so
                   },
                   "lineNumber": "A String", # Line number of the frame.
-                  "originalFunctionName": "A String", # Used when the function name is
-                      # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
-                      # fully-qualified.
+                  "sourceVersion": "A String", # The version of the deployed source code.
                 },
               ],
             },
@@ -226,13 +226,13 @@
                 "type": "A String", # The relationship of the current span relative to the linked span.
               },
             ],
-            "parentId": "A String", # ID of the parent span. If this is a root span, the value must be `0` or
-                # empty.
             "localEndTime": "A String", # End time of the span.
                 # On the client side, this is the local machine clock time at which the span
                 # execution was ended; on the server
                 # side, this is the time at which the server application handler stopped
                 # running.
+            "parentId": "A String", # ID of the parent span. If this is a root span, the value must be `0` or
+                # empty.
             "attributes": { # Properties of a span in key:value format. The maximum length for the
                 # key is 128 characters. The value can be a string (up to 2000 characters),
                 # int, or boolean.
@@ -396,7 +396,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="listSpans">listSpans(name=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="listSpans">listSpans(name, pageToken=None, x__xgafv=None)</code>
   <pre>Returns a list of spans within a trace.
 
 Args:
@@ -503,7 +503,9 @@
               "functionName": "A String", # The fully-qualified name that uniquely identifies this function or
                   # method.
               "fileName": "A String", # The filename of the file containing this frame.
-              "sourceVersion": "A String", # The version of the deployed source code.
+              "originalFunctionName": "A String", # Used when the function name is
+                  # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
+                  # fully-qualified.
               "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
@@ -511,9 +513,7 @@
                     # such as libc.so, sharedlib.so
               },
               "lineNumber": "A String", # Line number of the frame.
-              "originalFunctionName": "A String", # Used when the function name is
-                  # [mangled](http://www.avabodh.com/cxxin/namemangling.html). May be
-                  # fully-qualified.
+              "sourceVersion": "A String", # The version of the deployed source code.
             },
           ],
         },
@@ -533,13 +533,13 @@
             "type": "A String", # The relationship of the current span relative to the linked span.
           },
         ],
-        "parentId": "A String", # ID of the parent span. If this is a root span, the value must be `0` or
-            # empty.
         "localEndTime": "A String", # End time of the span.
             # On the client side, this is the local machine clock time at which the span
             # execution was ended; on the server
             # side, this is the time at which the server application handler stopped
             # running.
+        "parentId": "A String", # ID of the parent span. If this is a root span, the value must be `0` or
+            # empty.
         "attributes": { # Properties of a span in key:value format. The maximum length for the
             # key is 128 characters. The value can be a string (up to 2000 characters),
             # int, or boolean.
diff --git a/docs/dyn/vision_v1.images.html b/docs/dyn/vision_v1.images.html
index 9471feb..9fe90a4 100644
--- a/docs/dyn/vision_v1.images.html
+++ b/docs/dyn/vision_v1.images.html
@@ -256,11 +256,11 @@
         "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.
+          "medical": "A String", # Likelihood that this is a medical image.
           "adult": "A String", # Represents the adult content likelihood for the image.
         },
         "textAnnotations": [ # If present, text (OCR) detection has completed successfully.
@@ -397,202 +397,68 @@
             },
           ],
         },
-        "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.
-                          "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.
-                              },
-                            ],
-                          },
-                          "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].
-                                  },
-                                ],
-                              },
-                            },
-                          ],
-                          "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.
+        "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.
             },
           ],
         },
@@ -836,9 +702,8 @@
                 # [-180,180].
             "sorrowLikelihood": "A String", # Sorrow likelihood.
             "landmarkingConfidence": 3.14, # Face landmarking confidence. Range [0, 1].
+            "underExposedLikelihood": "A String", # Under-exposed likelihood.
             "detectionConfidence": 3.14, # Detection confidence. Range [0, 1].
-            "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].
             "joyLikelihood": "A String", # Joy likelihood.
             "landmarks": [ # Detected face landmarks.
               { # A face-specific landmark (for example, a face feature).
@@ -858,7 +723,8 @@
             ],
             "surpriseLikelihood": "A String", # Surprise likelihood.
             "blurredLikelihood": "A String", # Blurred likelihood.
-            "underExposedLikelihood": "A String", # Under-exposed 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].
             "angerLikelihood": "A String", # Anger likelihood.
             "boundingPoly": { # A bounding polygon for the detected image annotation. # The bounding polygon around the face. The coordinates of the bounding box
                 # are in the original image's scale, as returned in `ImageParams`.
@@ -1079,68 +945,202 @@
             ],
           },
         ],
-        "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.
+                  "type": "A String", # Detected break type.
+                  "isPrefix": True or False, # True if break prepends the element.
+                },
+                "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.
+                      "type": "A String", # Detected break type.
+                      "isPrefix": True or False, # True if break prepends the element.
+                    },
+                    "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.
+                          "type": "A String", # Detected break type.
+                          "isPrefix": True or False, # True if break prepends the element.
+                        },
+                        "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.
+                          "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.
+                              },
+                            ],
+                          },
+                          "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.
+                                  "type": "A String", # Detected break type.
+                                  "isPrefix": True or False, # True if break prepends the element.
+                                },
+                                "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].
+                                  },
+                                ],
+                              },
+                            },
+                          ],
+                          "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.
+                              "type": "A String", # Detected break type.
+                              "isPrefix": True or False, # True if break prepends the element.
+                            },
+                            "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.
             },
           ],
         },
diff --git a/docs/dyn/youtubeAnalytics_v1.reports.html b/docs/dyn/youtubeAnalytics_v1.reports.html
index 3a4d95e..414446e 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, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=None)</a></code></p>
+  <code><a href="#query">query(ids, 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, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=None)</code>
+    <code class="details" id="query">query(ids, 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:
diff --git a/docs/dyn/youtubeAnalytics_v1beta1.reports.html b/docs/dyn/youtubeAnalytics_v1beta1.reports.html
index e5de773..8b579c6 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, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=None)</a></code></p>
+  <code><a href="#query">query(ids, 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, currency=None, max_results=None, filters=None, dimensions=None, sort=None, start_index=None, include_historical_channel_data=None)</code>
+    <code class="details" id="query">query(ids, 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:
diff --git a/docs/dyn/youtube_v3.activities.html b/docs/dyn/youtube_v3.activities.html
index 0ca403f..f489f71 100644
--- a/docs/dyn/youtube_v3.activities.html
+++ b/docs/dyn/youtube_v3.activities.html
@@ -78,7 +78,7 @@
   <code><a href="#insert">insert(part, body)</a></code></p>
 <p class="firstline">Posts a bulletin for a specific channel. (The user submitting the request must be authorized to act on the channel's behalf.)</p>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, pageToken=None, publishedBefore=None, channelId=None, mine=None, maxResults=None, regionCode=None, home=None, publishedAfter=None)</a></code></p>
+  <code><a href="#list">list(part, pageToken=None, publishedBefore=None, channelId=None, mine=None, maxResults=None, regionCode=None, home=None, publishedAfter=None)</a></code></p>
 <p class="firstline">Returns a list of channel activity events that match the request criteria. For example, you can retrieve events associated with a particular channel, events associated with the user's subscriptions and Google+ friends, or the YouTube home page feed, which is customized for each user.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -397,7 +397,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(part=None, pageToken=None, publishedBefore=None, channelId=None, mine=None, maxResults=None, regionCode=None, home=None, publishedAfter=None)</code>
+    <code class="details" id="list">list(part, pageToken=None, publishedBefore=None, channelId=None, mine=None, maxResults=None, regionCode=None, home=None, publishedAfter=None)</code>
   <pre>Returns a list of channel activity events that match the request criteria. For example, you can retrieve events associated with a particular channel, events associated with the user's subscriptions and Google+ friends, or the YouTube home page feed, which is customized for each user.
 
 Args:
diff --git a/docs/dyn/youtube_v3.channelSections.html b/docs/dyn/youtube_v3.channelSections.html
index 6be2954..78d5ac5 100644
--- a/docs/dyn/youtube_v3.channelSections.html
+++ b/docs/dyn/youtube_v3.channelSections.html
@@ -78,13 +78,13 @@
   <code><a href="#delete">delete(id, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Deletes a channelSection.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+  <code><a href="#insert">insert(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Adds a channelSection for the authenticated user's channel.</p>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, onBehalfOfContentOwner=None, hl=None, channelId=None, mine=None, id=None)</a></code></p>
+  <code><a href="#list">list(part, onBehalfOfContentOwner=None, hl=None, channelId=None, mine=None, id=None)</a></code></p>
 <p class="firstline">Returns channelSection resources that match the API request criteria.</p>
 <p class="toc_element">
-  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Update a channelSection.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -100,7 +100,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+    <code class="details" id="insert">insert(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
   <pre>Adds a channelSection for the authenticated user's channel.
 
 Args:
@@ -206,7 +206,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(part=None, onBehalfOfContentOwner=None, hl=None, channelId=None, mine=None, id=None)</code>
+    <code class="details" id="list">list(part, onBehalfOfContentOwner=None, hl=None, channelId=None, mine=None, id=None)</code>
   <pre>Returns channelSection resources that match the API request criteria.
 
 Args:
@@ -275,7 +275,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None)</code>
+    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None)</code>
   <pre>Update a channelSection.
 
 Args:
diff --git a/docs/dyn/youtube_v3.channels.html b/docs/dyn/youtube_v3.channels.html
index 72c12aa..a733962 100644
--- a/docs/dyn/youtube_v3.channels.html
+++ b/docs/dyn/youtube_v3.channels.html
@@ -75,17 +75,17 @@
 <h1><a href="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.channels.html">channels</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, hl=None, mine=None, mySubscribers=None, id=None, managedByMe=None, onBehalfOfContentOwner=None, forUsername=None, pageToken=None, categoryId=None, maxResults=None)</a></code></p>
+  <code><a href="#list">list(part, hl=None, mine=None, mySubscribers=None, id=None, managedByMe=None, onBehalfOfContentOwner=None, forUsername=None, pageToken=None, categoryId=None, maxResults=None)</a></code></p>
 <p class="firstline">Returns a collection of zero or more channel resources that match the request criteria.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Updates a channel's metadata. Note that this method currently only supports updates to the channel resource's brandingSettings and invideoPromotion objects and their child properties.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(part=None, hl=None, mine=None, mySubscribers=None, id=None, managedByMe=None, onBehalfOfContentOwner=None, forUsername=None, pageToken=None, categoryId=None, maxResults=None)</code>
+    <code class="details" id="list">list(part, hl=None, mine=None, mySubscribers=None, id=None, managedByMe=None, onBehalfOfContentOwner=None, forUsername=None, pageToken=None, categoryId=None, maxResults=None)</code>
   <pre>Returns a collection of zero or more channel resources that match the request criteria.
 
 Args:
@@ -379,7 +379,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None)</code>
+    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None)</code>
   <pre>Updates a channel's metadata. Note that this method currently only supports updates to the channel resource's brandingSettings and invideoPromotion objects and their child properties.
 
 Args:
diff --git a/docs/dyn/youtube_v3.liveBroadcasts.html b/docs/dyn/youtube_v3.liveBroadcasts.html
index f818a0f..925178d 100644
--- a/docs/dyn/youtube_v3.liveBroadcasts.html
+++ b/docs/dyn/youtube_v3.liveBroadcasts.html
@@ -84,7 +84,7 @@
   <code><a href="#delete">delete(id, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Deletes a broadcast.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+  <code><a href="#insert">insert(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Creates a broadcast.</p>
 <p class="toc_element">
   <code><a href="#list">list(part, broadcastStatus=None, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, maxResults=None, mine=None, broadcastType=None, id=None)</a></code></p>
@@ -96,7 +96,7 @@
   <code><a href="#transition">transition(broadcastStatus, id, part, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Changes the status of a YouTube live broadcast and initiates any processes associated with the new status. For example, when you transition a broadcast's status to testing, YouTube starts to transmit video to that broadcast's monitor stream. Before calling this method, you should confirm that the value of the status.streamStatus property for the stream bound to your broadcast is active.</p>
 <p class="toc_element">
-  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Updates a broadcast. For example, you could modify the broadcast settings defined in the liveBroadcast resource's contentDetails object.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -359,7 +359,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+    <code class="details" id="insert">insert(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
   <pre>Creates a broadcast.
 
 Args:
@@ -860,7 +860,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
   <pre>Updates a broadcast. For example, you could modify the broadcast settings defined in the liveBroadcast resource's contentDetails object.
 
 Args:
diff --git a/docs/dyn/youtube_v3.liveStreams.html b/docs/dyn/youtube_v3.liveStreams.html
index 65620a3..4f30082 100644
--- a/docs/dyn/youtube_v3.liveStreams.html
+++ b/docs/dyn/youtube_v3.liveStreams.html
@@ -78,7 +78,7 @@
   <code><a href="#delete">delete(id, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Deletes a video stream.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+  <code><a href="#insert">insert(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Creates a video stream. The stream enables you to send your video to YouTube, which can then broadcast the video to your audience.</p>
 <p class="toc_element">
   <code><a href="#list">list(part, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, maxResults=None, mine=None, id=None)</a></code></p>
@@ -87,7 +87,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="#update">update(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
+  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Updates a video stream. If the properties that you want to change cannot be updated, then you need to create a new stream with the proper settings.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -108,7 +108,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+    <code class="details" id="insert">insert(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
   <pre>Creates a video stream. The stream enables you to send your video to YouTube, which can then broadcast the video to your audience.
 
 Args:
@@ -341,7 +341,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
+    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</code>
   <pre>Updates a video stream. If the properties that you want to change cannot be updated, then you need to create a new stream with the proper settings.
 
 Args:
diff --git a/docs/dyn/youtube_v3.playlistItems.html b/docs/dyn/youtube_v3.playlistItems.html
index 9f6f7b5..0ada53c 100644
--- a/docs/dyn/youtube_v3.playlistItems.html
+++ b/docs/dyn/youtube_v3.playlistItems.html
@@ -81,13 +81,13 @@
   <code><a href="#insert">insert(part, body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Adds a resource to a playlist.</p>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, playlistId=None, videoId=None, maxResults=None, id=None)</a></code></p>
+  <code><a href="#list">list(part, onBehalfOfContentOwner=None, pageToken=None, playlistId=None, videoId=None, maxResults=None, id=None)</a></code></p>
 <p class="firstline">Returns a collection of playlist items that match the API request parameters. You can retrieve all of the playlist items in a specified playlist or retrieve one or more playlist items by their unique IDs.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Modifies a playlist item. For example, you could update the item's position in the playlist.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -254,7 +254,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, playlistId=None, videoId=None, maxResults=None, id=None)</code>
+    <code class="details" id="list">list(part, onBehalfOfContentOwner=None, pageToken=None, playlistId=None, videoId=None, maxResults=None, id=None)</code>
   <pre>Returns a collection of playlist items that match the API request parameters. You can retrieve all of the playlist items in a specified playlist or retrieve one or more playlist items by their unique IDs.
 
 Args:
@@ -372,7 +372,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None)</code>
+    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None)</code>
   <pre>Modifies a playlist item. For example, you could update the item's position in the playlist.
 
 Args:
diff --git a/docs/dyn/youtube_v3.playlists.html b/docs/dyn/youtube_v3.playlists.html
index 60e68c3..6c5fe6b 100644
--- a/docs/dyn/youtube_v3.playlists.html
+++ b/docs/dyn/youtube_v3.playlists.html
@@ -81,13 +81,13 @@
   <code><a href="#insert">insert(part, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
 <p class="firstline">Creates a playlist.</p>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, hl=None, channelId=None, mine=None, maxResults=None, id=None)</a></code></p>
+  <code><a href="#list">list(part, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, hl=None, channelId=None, mine=None, maxResults=None, id=None)</a></code></p>
 <p class="firstline">Returns a collection of playlists that match the API request parameters. For example, you can retrieve all playlists that the authenticated user owns, or you can retrieve one or more playlists by their unique IDs.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Modifies a playlist. For example, you could change a playlist's title, description, or privacy status.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -269,7 +269,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(part=None, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, hl=None, channelId=None, mine=None, maxResults=None, id=None)</code>
+    <code class="details" id="list">list(part, onBehalfOfContentOwner=None, pageToken=None, onBehalfOfContentOwnerChannel=None, hl=None, channelId=None, mine=None, maxResults=None, id=None)</code>
   <pre>Returns a collection of playlists that match the API request parameters. For example, you can retrieve all playlists that the authenticated user owns, or you can retrieve one or more playlists by their unique IDs.
 
 Args:
@@ -398,7 +398,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None)</code>
+    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None)</code>
   <pre>Modifies a playlist. For example, you could change a playlist's title, description, or privacy status.
 
 Args:
diff --git a/docs/dyn/youtube_v3.subscriptions.html b/docs/dyn/youtube_v3.subscriptions.html
index fcd7306..4d94c6c 100644
--- a/docs/dyn/youtube_v3.subscriptions.html
+++ b/docs/dyn/youtube_v3.subscriptions.html
@@ -81,7 +81,7 @@
   <code><a href="#insert">insert(part, body)</a></code></p>
 <p class="firstline">Adds a subscription for the authenticated user's channel.</p>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, channelId=None, mine=None, mySubscribers=None, id=None, myRecentSubscribers=None, onBehalfOfContentOwner=None, pageToken=None, forChannelId=None, onBehalfOfContentOwnerChannel=None, maxResults=None, order=None)</a></code></p>
+  <code><a href="#list">list(part, channelId=None, mine=None, mySubscribers=None, id=None, myRecentSubscribers=None, onBehalfOfContentOwner=None, pageToken=None, forChannelId=None, onBehalfOfContentOwnerChannel=None, maxResults=None, order=None)</a></code></p>
 <p class="firstline">Returns subscription resources that match the API request criteria.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -277,7 +277,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(part=None, channelId=None, mine=None, mySubscribers=None, id=None, myRecentSubscribers=None, onBehalfOfContentOwner=None, pageToken=None, forChannelId=None, onBehalfOfContentOwnerChannel=None, maxResults=None, order=None)</code>
+    <code class="details" id="list">list(part, channelId=None, mine=None, mySubscribers=None, id=None, myRecentSubscribers=None, onBehalfOfContentOwner=None, pageToken=None, forChannelId=None, onBehalfOfContentOwnerChannel=None, maxResults=None, order=None)</code>
   <pre>Returns subscription resources that match the API request criteria.
 
 Args:
diff --git a/docs/dyn/youtube_v3.videos.html b/docs/dyn/youtube_v3.videos.html
index 36c23ff..230b0d8 100644
--- a/docs/dyn/youtube_v3.videos.html
+++ b/docs/dyn/youtube_v3.videos.html
@@ -81,10 +81,10 @@
   <code><a href="#getRating">getRating(id, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Retrieves the ratings that the authorized user gave to a list of specified videos.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(part=None, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, media_mime_type=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</a></code></p>
+  <code><a href="#insert">insert(part, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, media_mime_type=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</a></code></p>
 <p class="firstline">Uploads a video to YouTube and optionally sets the video's metadata.</p>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, hl=None, maxWidth=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, maxHeight=None, videoCategoryId=None)</a></code></p>
+  <code><a href="#list">list(part, hl=None, maxWidth=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, maxHeight=None, videoCategoryId=None)</a></code></p>
 <p class="firstline">Returns a list of videos that match the API request parameters.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -96,7 +96,7 @@
   <code><a href="#reportAbuse">reportAbuse(body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Report abuse for a video.</p>
 <p class="toc_element">
-  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
+  <code><a href="#update">update(part, body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Updates a video's metadata.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -139,7 +139,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(part=None, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, media_mime_type=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</code>
+    <code class="details" id="insert">insert(part, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, media_mime_type=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</code>
   <pre>Uploads a video to YouTube and optionally sets the video's metadata.
 
 Args:
@@ -758,7 +758,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(part=None, hl=None, maxWidth=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, maxHeight=None, videoCategoryId=None)</code>
+    <code class="details" id="list">list(part, hl=None, maxWidth=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, maxHeight=None, videoCategoryId=None)</code>
   <pre>Returns a list of videos that match the API request parameters.
 
 Args:
@@ -1157,7 +1157,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None)</code>
+    <code class="details" id="update">update(part, body, onBehalfOfContentOwner=None)</code>
   <pre>Updates a video's metadata.
 
 Args:
diff --git a/docs/dyn/youtubereporting_v1.media.html b/docs/dyn/youtubereporting_v1.media.html
index 8e5d4f1..12e2fc3 100644
--- a/docs/dyn/youtubereporting_v1.media.html
+++ b/docs/dyn/youtubereporting_v1.media.html
@@ -75,14 +75,14 @@
 <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=None, x__xgafv=None)</a></code></p>
+  <code><a href="#download">download(resourceName, 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=None, x__xgafv=None)</a></code></p>
+  <code><a href="#download_media">download_media(resourceName, 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=None, x__xgafv=None)</code>
+    <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`.
 
@@ -103,7 +103,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="download_media">download_media(resourceName=None, x__xgafv=None)</code>
+    <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`.
 
diff --git a/docs/dyn/youtubereporting_v1.reportTypes.html b/docs/dyn/youtubereporting_v1.reportTypes.html
index 440cdea..5bb35d8 100644
--- a/docs/dyn/youtubereporting_v1.reportTypes.html
+++ b/docs/dyn/youtubereporting_v1.reportTypes.html
@@ -113,12 +113,12 @@
         # 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.
-        "name": "A String", # The name of the report type (max. 100 characters).
         "id": "A String", # The ID of the report type (max. 100 characters).
+        "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>
